科技創(chuàng)新4a-第9大組本地主系統(tǒng)設(shè)計(jì)報(bào)告_第1頁(yè)
科技創(chuàng)新4a-第9大組本地主系統(tǒng)設(shè)計(jì)報(bào)告_第2頁(yè)
科技創(chuàng)新4a-第9大組本地主系統(tǒng)設(shè)計(jì)報(bào)告_第3頁(yè)
科技創(chuàng)新4a-第9大組本地主系統(tǒng)設(shè)計(jì)報(bào)告_第4頁(yè)
科技創(chuàng)新4a-第9大組本地主系統(tǒng)設(shè)計(jì)報(bào)告_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余66頁(yè)可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

完成時(shí)間:2012-5-科技創(chuàng)新科技創(chuàng)新本地系統(tǒng)及總線通信實(shí)驗(yàn)報(bào)項(xiàng)目名稱:主從多機(jī)測(cè)量控制系統(tǒng)——本系統(tǒng)及通信總線項(xiàng)目開發(fā)小組:第9大組小組成員:王蘇陽(yáng)(組長(zhǎng))李云成莊漢交通大學(xué)電子交通大學(xué)電子信息與電氣:本文是電院科技創(chuàng)新4A的本系統(tǒng)設(shè)計(jì)報(bào)告,主要針對(duì)的閱讀對(duì)象為:選修《科技創(chuàng)新4A研究的從業(yè)。詳細(xì)論述了一個(gè)信息處理系統(tǒng)中全局主系統(tǒng)的主要功能、系統(tǒng)架構(gòu)、本實(shí)驗(yàn)的主要任務(wù)為設(shè)計(jì)并制作一個(gè)主從多機(jī)測(cè)量控制系統(tǒng)的本機(jī)系統(tǒng)及總線通信系統(tǒng)。該系統(tǒng)主要由全局主系統(tǒng)、本系統(tǒng)、從系統(tǒng)組成,以RS422通信總線作為主干信道,融合機(jī)實(shí)現(xiàn),降低了功耗和成本。本文詳細(xì)論述如何利用EDA工具加快開發(fā)進(jìn)度可靠性的具體方:科創(chuàng)4A,EDA通信仿從多機(jī)通信,通信協(xié):Thisarticleisthereportofthelocalsystemdesignofscientificandtechnicalinnovation4A.Itmainlyfocusonreaderswhotakethecourseofsci-techinnovation4A—designandpracticeofcomplexelectroniccircuitsystem--especiallystudentsofEE,andresearchersinthisfield.Thisreportexpressesthedetailofthemainfunction,systemstucture,technicalindex,andstepsofexploitionandtest.Themaintaskofexperimentistodesignaeprocessingsystem.Thesystemconsistsofoverallmastersystem,localmastersystem,slaversystemoneultrasonicinspection,slaversystemtwoobservingandcontrollingofwatertemperature,slaversystemthreeobservingandcontrollingofmotorspeed.ThesystemshoulduseRS422communicationbusasmainsignalpathandsupportsomerulesofcommunicationprotocolssothatitcanachievemutualcommunication.Thelocalmastersystem,insteadofusingaPC,takesadvantageoffullyusingAVRsystemtolowerpowerdissipationandcosts.ThearticlegivesadetaildescriptionofhowtouseEDAtoolstospeedupthedeveloprocessandimprovetherobustofthesystemandhowtosetupthesimulationplatform.sci-techinnovation4A,EDAsimulationforcommunicationsystem,master-slavemulti-machinecommunication,Communicationprotocol概 編寫說 名詞定 縮略 系統(tǒng)總體說 系統(tǒng)設(shè)計(jì)總體結(jié) 系統(tǒng)總體功 通信模型的總體設(shè) 拓?fù)浣Y(jié) 通信分層模 協(xié)議分 系統(tǒng)分 物理層詳細(xì)設(shè) RS-422/485通信總 差分傳 RS-422電氣規(guī) 總線的選 無(wú)線通信模 線纜與插 MAX483及接口電 接口電 本系統(tǒng)與全局主系統(tǒng)的連 總線通信具體實(shí)現(xiàn)詳細(xì)設(shè) 單片機(jī)串行通信的實(shí) ATmega16單片機(jī)的串行接 串口操 信息幀結(jié)構(gòu)及其發(fā)送接收實(shí) 通信協(xié) 信息幀基本結(jié) 通信協(xié)議說 命令幀通信協(xié) 響應(yīng)幀通信協(xié) 幀結(jié)構(gòu)的發(fā) 幀結(jié)構(gòu)的捕 關(guān)于 調(diào)試過 調(diào)試步 系統(tǒng)仿 單機(jī)仿真階 系統(tǒng)級(jí)仿 EDA仿真的缺陷和本組遭遇的問 系統(tǒng)程序解 主體程序結(jié) 相關(guān)函數(shù)具體說 單片機(jī)端口初始化函數(shù) 單片機(jī)定時(shí)器0初始化函數(shù)timer0_init 單片機(jī)串口初始化函數(shù)UsartInit 字符發(fā)送函數(shù)PutChar()、 幀處理函數(shù) 數(shù)碼管顯示函數(shù)NUMTOSEG7(unsignedchar Led燈顯示函數(shù)display_led(unsignedcharseg,unsignedchar 進(jìn)制轉(zhuǎn)化函數(shù)asc2num(unsignedchara,unsignedcharb),num2asc(unsignedintx) 致 參考資 附錄A本系統(tǒng)與從機(jī)子系統(tǒng)之間的通信協(xié) 附錄B開發(fā)環(huán) 主要開發(fā)地 主要開發(fā)硬件資 主要開發(fā)資 附錄C程序 附錄D系統(tǒng)概編寫說為大三下學(xué)期電院科技創(chuàng)新4A計(jì)報(bào)告。著重從物理層介紹整個(gè)通信系統(tǒng)的設(shè)計(jì),并從單片機(jī)系統(tǒng)控制的層面解釋本地系統(tǒng)是如何工作的,通過EDA工具提高系統(tǒng)穩(wěn)定性,增加系統(tǒng)開發(fā)效率并減輕開發(fā)者的勞動(dòng)強(qiáng)度。的適讀對(duì)象為電子信息類專業(yè)高年級(jí)的學(xué)生,以及具有AVR單片機(jī)開發(fā)基礎(chǔ),并對(duì)主從多機(jī)系統(tǒng)總線通信設(shè)計(jì)感的讀者。名詞定EDA:EDA是電子設(shè)計(jì)自動(dòng)化(ElectronicDesignAutomation)2060期從計(jì)算機(jī)輔助設(shè)計(jì)(AD)、計(jì)算機(jī)輔助制造(CAM)、計(jì)算機(jī)輔助測(cè)試(CAT)和單片機(jī)小系統(tǒng):包括MCU(進(jìn)行運(yùn)算、控制)、RAM(數(shù)據(jù))、ROM(程序)、輸RS422:串行數(shù)據(jù)接口標(biāo)準(zhǔn),最初都是由電子工業(yè)(EIA)制訂并發(fā)布的網(wǎng)絡(luò)通信協(xié)議:指信息網(wǎng)絡(luò)中使用的通信語(yǔ)言。包括三個(gè)要素:(1)縮略ASCII:AmericanStandardCodeforInformationInterchange,即信息交換標(biāo)準(zhǔn)代碼主機(jī):本系統(tǒng)。系統(tǒng)總體說2.1系統(tǒng)總體功本系統(tǒng)采用全雙工的串行異步通信方式,根據(jù)《本系統(tǒng)與從機(jī)子系統(tǒng)之間的通信協(xié)議》通信協(xié)議進(jìn)行通信。本系統(tǒng)主要完成以下功能:通過單片機(jī)將全局主系統(tǒng)發(fā)送過來令翻譯成符合《本系統(tǒng)與從機(jī)子系統(tǒng)之間 通信模型的總體設(shè)拓?fù)浣Y(jié)RS422總線采用線性結(jié)構(gòu),圖3.1給出總線型拓?fù)錁?gòu)型。圖3.2給出具體的系統(tǒng)連接(系統(tǒng)RS422總的信道,將子系統(tǒng)對(duì)應(yīng)的收發(fā)器的MAX483的使能端與單片機(jī)的輸出端口相連,使得在不響應(yīng)信息時(shí),可以使得子系統(tǒng)通過MAX483接入總線呈高阻態(tài)。通信分層模些協(xié)議規(guī)定了系統(tǒng)換的信息的格式和有關(guān)時(shí)序。協(xié)議主要由三部分:語(yǔ)法、語(yǔ)義和時(shí)序。為簡(jiǎn)各層之間相互獨(dú)立。并不需要知道低層是如何實(shí)現(xiàn)的,而僅需要知道該層通過層間參考了不少設(shè)計(jì)資料,可以簡(jiǎn)單地將整個(gè)系統(tǒng)分解成三層結(jié)構(gòu),分別為物理層、網(wǎng)絡(luò)層和應(yīng)用層。物理層主要指的是在物理電路中,實(shí)際傳輸?shù)臄?shù)據(jù)。一般來說,物理層上的數(shù)據(jù)以bit為RS422總線以及使用的無(wú)線模塊和紅外模塊的相關(guān)物理層協(xié)議。網(wǎng)絡(luò)層主要物理層詳細(xì)RS-422/485通信總RS-422/485總線標(biāo)準(zhǔn)是由EIA為業(yè)界應(yīng)用最為廣泛的標(biāo)準(zhǔn)通口之一。RS-422是由RS-232發(fā)展而來,它是為彌補(bǔ)RS-232通信距離短,速率低的缺點(diǎn)而提出來的。RS-422定義的平衡通口,將傳輸速率提高到10Mb/s,傳輸距離延長(zhǎng)到1200km(速率低于100kb/s),并允許在一條平衡總線上連接最多10個(gè)。RS-422是一種單機(jī)發(fā)送、多機(jī)接收的規(guī)范,其總線具有四根信號(hào)線,接口采用平衡驅(qū)動(dòng)差動(dòng)接收電路,信號(hào)采用差分傳輸方式。在RS-422的基礎(chǔ)上提出了RS-485標(biāo)準(zhǔn),RS-485增加了多點(diǎn)、雙向通行能力,允許多個(gè)發(fā)送器連接到同一條總線上,同時(shí)增加了發(fā)送器的驅(qū)動(dòng)能力和保護(hù)特性,擴(kuò)展了總線共模范圍。RS-422和RS-485標(biāo)準(zhǔn)只對(duì)接口的電氣特性做出規(guī)定,而不涉及插件、電纜和協(xié)議,在此基礎(chǔ)上用戶可以建立自己的通信協(xié)議。它們的具體規(guī)格如下表:在RS-422和RS-485總線上,數(shù)據(jù)信號(hào)采用差分傳輸方式,它使用一對(duì)雙絞線,將其中一線定義為A,另一線定義為B,如下圖所示:圖 通常情況下,發(fā)送驅(qū)動(dòng)器A、B之間的正電平在+2~+6V,是一個(gè)邏輯狀態(tài),負(fù)電平在-2~-6V,是另一個(gè)邏輯狀態(tài)。另有一個(gè)信號(hào)地C,在RS-485總線中還有使能端,用來控制發(fā)送驅(qū)動(dòng)器與傳輸線的切斷和連接。當(dāng)使能端起作用時(shí),發(fā)送接收驅(qū)動(dòng)器處于高阻狀態(tài)。對(duì)于,其接收端A、B和發(fā)送器的輸出端AA、BB通過雙絞線相連,當(dāng)AB之間有大于+200mV的電平時(shí),輸出正邏輯電平,小于-200mV時(shí),輸出負(fù)邏輯電平。接收平衡線上的電平范圍通常在200mV至6V之如下圖所示為RS-422DB9連接器引腳定義和典型的RS-422四線接口。由于采用高輸入阻抗和發(fā)送器的較強(qiáng)驅(qū)動(dòng)力,故允許在相同傳輸線上連接多個(gè)接收結(jié)點(diǎn),最多可以接10個(gè)節(jié)點(diǎn)??偩€上的點(diǎn)包括一個(gè)主機(jī)和多個(gè)從機(jī),從機(jī)之間不能通信,因此RS-422支持點(diǎn)對(duì)多點(diǎn)的雙向通信。RS-422四線接口采用單獨(dú)的發(fā)送和接受信道,因此不必控制數(shù)據(jù)方向,各系統(tǒng)之間的信號(hào)交換以方式或硬件方式實(shí)現(xiàn)。4.3RS-422本次系統(tǒng)要求設(shè)計(jì)點(diǎn)到多點(diǎn)的通信系統(tǒng),其中一個(gè)本系統(tǒng)和三個(gè)子系統(tǒng)。按照協(xié)議的要求,本系統(tǒng)在收到全局主系統(tǒng)令幀或者本系統(tǒng)自身要向子系統(tǒng)發(fā)送命令幀時(shí),本地主系統(tǒng)向某子系統(tǒng)發(fā)送命令。子系統(tǒng)在收到從本系統(tǒng)發(fā)送來令幀后判斷命令幀的是否為發(fā)RS-422或者RS-485總線。本次采用RS-422總線四線工作方式。本系統(tǒng)可以通過下行鏈路(兩線)向每個(gè)子系統(tǒng)發(fā)送命令消息,子系統(tǒng)通過上行鏈路(兩線)回發(fā)響應(yīng)消息,其中上行鏈路的占用情無(wú)線通信模無(wú)線模塊的主要功能是進(jìn)行主機(jī)與本系統(tǒng)之間數(shù)據(jù)的無(wú)線傳輸,實(shí)現(xiàn)數(shù)據(jù)。在實(shí)際試驗(yàn)過程中,采用桑銳電子科技生產(chǎn)的SRWF-1101型無(wú)線通信模塊。SRWF-1101概SRWF-1101FECIC,,以及高速微處理器相結(jié)合開發(fā)出的一款無(wú)線通信模塊,該無(wú)線通信模塊具有很強(qiáng)的能力,全明傳輸體積小,功耗低傳輸距離遠(yuǎn)的特點(diǎn)4.5圖4.5SRWF-1101實(shí)物圖SRWF-1101如表4-2所示,為SRWF-1101的技術(shù)指標(biāo)4-2SRWF-1101的技術(shù)1234-111~-56789UARTTTL/RS-232/RS--SRWF-11014-3SRWF-1101接口定SRWF-11011無(wú)2345無(wú)6無(wú)7無(wú)89圖4.6SRWF-1101接口定線纜與插RS-422通信總線的布線一般采絞線作為傳輸介質(zhì)。本系統(tǒng)采用非雙絞線,它是普通的線。連接線有兩種基本模塊插座,RJ45和RJ11。RJ45為8芯插座,RJ11為6芯插座。這里采用6芯插座,并且只用到RJ11規(guī)范中的4芯。它們?cè)诳偩€上掛載方式如下圖:4.7插座掛載方式MAX483RS-485RS-422通信的低功耗收發(fā)器,器件中具有電纜引起的反射,實(shí)現(xiàn)最高250kbps的無(wú)差錯(cuò)數(shù)據(jù)傳輸。收發(fā)器在驅(qū)動(dòng)器禁用的空載或滿載狀態(tài)下,吸取的電源電流在120uA500uA之間。另MAX483具有低電流關(guān)斷模式,僅消耗0.1uA。器件工作在5V單電源下,不過要注意各MAX483工作時(shí)的共地問題。對(duì)于下行鏈路中作為發(fā)送驅(qū)動(dòng)器的MAX483,其接收使能端/RE連接高電平、平衡輸出端RODEDI連接至單片機(jī)的串口通信發(fā)送端。對(duì)于上行MAX483DE置低電平,當(dāng)其對(duì)應(yīng)的子行鏈路的問題。如下圖所示:4.9MAX483對(duì)于作為的MAX483,其接收使能端/RE連接低電平、平衡輸出RO連接至單片機(jī)的串行通口接收端、發(fā)送使能端DE連接低電平、平衡發(fā)送端DI空載。如下圖所示:4.10MAX483每套接口電路均包含一個(gè)發(fā)送驅(qū)動(dòng)器MAX483和一個(gè)MAX483,它們的差分輸出A、B或差分輸入AA、BB分別連接至總線上,總過RJ11和線連接至集線器上。通過集線器來由于本次系統(tǒng)的布局都是在以本地為中心的1米范圍內(nèi),因此在總線上的通信可靠性比較MAX483AB之間接上匹配電阻(120歐姆)以抵消總線傳輸過程中因發(fā)射造成的信號(hào)衰4.11如將上圖所示接口電路作為子系統(tǒng)接口電路,本系統(tǒng)的接口電路的上行鏈路和下行鏈路對(duì)應(yīng)子系統(tǒng)接口電路的下行鏈路和上行鏈路。在RJ11需做點(diǎn)改變即可。如下圖所示:4.124.13集線器上的RS232轉(zhuǎn)換電路塊只在本系統(tǒng)與PC連接擬串口通信時(shí)使用到,在完整的系統(tǒng)調(diào)試時(shí),將轉(zhuǎn)換電的兩片MAX483去掉以防這此塊電路對(duì)總線信號(hào)的干擾。集線器上的各RJ11插座連接至各系統(tǒng)完成系統(tǒng)通信的物理層架構(gòu)。本系統(tǒng)與全局主系統(tǒng)的連接總線通信具體實(shí)現(xiàn)詳細(xì)設(shè)ATmega16單片機(jī)含有一組全雙工串行口。具有以下特點(diǎn)全雙工操作(獨(dú)立的串行接收和發(fā)送寄存器,將USART分為了三個(gè)主要部分:時(shí)鐘發(fā)生器,發(fā)送器和??刂萍拇嫫饔扇齻€(gè)單元共享。時(shí)鐘發(fā)生器包含同步邏輯,通過它將波特率發(fā)生器及為從機(jī)同步操作所使用的外部輸入時(shí)鐘同步起來。XK發(fā)送器時(shí)鐘引腳只用于同步傳輸模式。發(fā)送器包括一個(gè)寫緩沖器,串行移位寄存器,奇偶發(fā)生器以及處理不同的幀格式所需的控制邏輯。寫緩沖器可以保持連續(xù)發(fā)送數(shù)據(jù)而不會(huì)在數(shù)據(jù)幀之間引入延遲。由于具有時(shí)鐘和數(shù)據(jù)恢復(fù)單元,它是UART模塊中最復(fù)雜的?;謴?fù)單元用于異步數(shù)據(jù)的接收。除了恢復(fù)單元,還包括奇偶器R。支持與發(fā)送器相同的幀格1,10位異步接收/1位起始位(12(8位重裝計(jì)數(shù)方式)9600bps,因此設(shè)置定時(shí)值UCSRB|=UBRRL=當(dāng)向UDR寫入一個(gè)數(shù)據(jù)時(shí),單片機(jī)系統(tǒng)隨即根據(jù)所選的工作方式和波特率將寫入的字節(jié)數(shù)據(jù)進(jìn)行相應(yīng)的處理后從TXD外部引腳發(fā)送出去,當(dāng)發(fā)送完成后硬件置位相應(yīng)寄存器內(nèi)的標(biāo)志位,該位必須由清除后才能發(fā)送下一字節(jié)數(shù)據(jù)。當(dāng)單片機(jī)的外部引腳RXD根據(jù)工作方式和波特率接收到一個(gè)完整的數(shù)據(jù)字節(jié)后,把該數(shù)據(jù)字節(jié)放入到接收緩沖寄存器中,并且置位相應(yīng)標(biāo)志位(RXC)。同樣,該位必須由清楚后才能接收在物理層提供比特流傳輸服務(wù)的基礎(chǔ)三行,在總線結(jié)構(gòu)的各節(jié)點(diǎn)之間建立信號(hào)傳輸連接。ASCII編碼,本系統(tǒng)完整的幀結(jié)構(gòu)為18字節(jié)長(zhǎng)度,但實(shí)際會(huì)length位而改變。當(dāng)length00時(shí),INFO位就沒有了。相l(xiāng)ength02時(shí),INFO400235.45.2通信協(xié)5-1所示為信息幀的基本結(jié)構(gòu),由通信主機(jī)發(fā)往從機(jī)的信息幀,稱為命令幀;由通信從機(jī)發(fā)表示意12[注2[注1]1符’1’和’0’表示,即ASCII代碼0x31,0x30(數(shù)字對(duì)應(yīng)的字符在先,低位在后)結(jié)束標(biāo)志采用字符’\r’ASCII代碼為0x0D 命令幀通信協(xié)議式無(wú)無(wú)無(wú)無(wú)無(wú)無(wú)5-3正?;謴?fù):00VER01CHKSUM無(wú)效命令:03參數(shù)段長(zhǎng)度錯(cuò):04無(wú)效參數(shù)個(gè)個(gè)ASCII碼。通過C51函數(shù)中的強(qiáng)制類型轉(zhuǎn)換,可以實(shí)現(xiàn)對(duì)于ASCII碼的處理。對(duì)于本地系統(tǒng),使用初始時(shí)和之后的大部分時(shí)間里,系直處于等待接受幀頭的狀態(tài),稱之為S0狀態(tài)。如當(dāng)接收到一個(gè)幀頭時(shí),在本系統(tǒng)中,幀頭被定義為SOI=“~”,系統(tǒng)開始接收后續(xù)的字EOI=“\r”,此時(shí)系統(tǒng)處于的狀態(tài)稱之為S1狀態(tài)。此時(shí)可能發(fā)生以下四種情況:如果收到字節(jié)不是EOI到首位。狀態(tài)仍為S1。如果收到幀尾EOI(通信協(xié)議中為“\r”即回車符),接收完成,系統(tǒng)轉(zhuǎn)為S0狀態(tài)。圖規(guī)定了CHKSUMsum,然后CHKSUM256sum%256CHKSUM16進(jìn)制。比如幀~100201000110DC\r,其中‘~’和‘\r10+02+01+00+01+10=24,注意這里的數(shù)都是16進(jìn)制。轉(zhuǎn)化成10進(jìn)制后sum=36,代入上式,CHKSUM=256-36%256=220,轉(zhuǎn)化成16進(jìn)制,即DC。調(diào)試系統(tǒng)級(jí)的調(diào)試往往是非常和耗費(fèi)時(shí)間的。本小組的本機(jī)基于ATmega16單片機(jī)實(shí)現(xiàn),而不是其他小組的計(jì)算機(jī),增加了的調(diào)試難度。由于系統(tǒng)中不確定因素可能來自EDA工具能夠大幅度提高工效,提高系統(tǒng)的可靠性,縮短開發(fā)周期,降低開發(fā)者的調(diào)試難度,讓開發(fā)者將主要精力集中于設(shè)計(jì)功能而不是硬件調(diào)試。本小組花費(fèi)較大精力,為系統(tǒng)設(shè)計(jì)了一整套完善的EDA仿真工具,使得工程師可以在桌面調(diào)試步首先使用只運(yùn)行接收幀處理函數(shù)的虛擬子機(jī)來完成整個(gè)系統(tǒng)的聯(lián)調(diào),確保本系統(tǒng)程序系統(tǒng)仿EDA工具的仿真環(huán)境,這樣在計(jì)算機(jī)上就可以進(jìn)行從單機(jī)到系統(tǒng)級(jí)的仿真工作,可以不必等到硬件完成才進(jìn)行的調(diào)試。仿真是在Proteus中進(jìn)行的。將程序加載進(jìn)單片機(jī)中,然后在終組實(shí)現(xiàn)了其他小組必須使用計(jì)算機(jī)才能夠?qū)崿F(xiàn)的本系統(tǒng)的全部功能,包括:檢糾錯(cuò),單機(jī),多機(jī)狀態(tài)查詢與工作模式設(shè)置,無(wú)線接口功能。這里將詳細(xì)介紹EDA輔助單機(jī),多機(jī)仿真的過程。第一階段仿要針對(duì)主機(jī),從機(jī)正確識(shí)別,發(fā)送幀展開。這一階段的主要任務(wù)是驗(yàn)證程序的正確性,為程序開發(fā)提供驗(yàn)證平臺(tái)。雖然使用硬件是方便的,但是受限于開放時(shí)間和芯片的燒寫,使用EDA工具能夠有效減低成本和提高效率。使用EDA工具,可以隨時(shí)隨地的進(jìn)試,不用擔(dān)心問題。對(duì)于本系統(tǒng)的程序,首先是檢測(cè)和識(shí)別命令的正確性,確??偩€上傳輸信息的正確性和總?cè)绻_,則將正確幀轉(zhuǎn)發(fā)。在這個(gè)仿真環(huán)境中,人工輸入在終端上的幀當(dāng)作從主系統(tǒng)或者子系統(tǒng)來的幀,程序運(yùn)行后返回的幀也顯示在終端上。為了方便起見,人工輸入令也顯示在終端上。(終端實(shí)際上顯示的是本系統(tǒng)發(fā)送的字符,而人工輸入字符相當(dāng)于本系統(tǒng)接收字符,下面截圖中是輸入各種命令程序的反應(yīng)。截圖中用的程序是早期調(diào)試用的程序。為了調(diào)試方便,當(dāng)輸入正確幀的時(shí)候程序轉(zhuǎn)發(fā)這個(gè)幀,但輸入錯(cuò)誤幀的時(shí)候讓它輸出一些標(biāo)志用的字符,來確定錯(cuò)誤所在。在最終程序中只要把輸出的這些字符改成相應(yīng)的錯(cuò)誤幀就可以了。如圖7.2.3中,當(dāng)輸入的幀“~100006000101e8\r”(電機(jī)子系統(tǒng)回復(fù)主系統(tǒng)狀態(tài)查詢幀)少了校驗(yàn)位e8時(shí),本系統(tǒng)檢查出錯(cuò)誤,并輸出接受幀隊(duì)列RsBuf[]中的值(a~n對(duì)應(yīng)該幀每一位),可見m、n沒有對(duì)應(yīng)的數(shù)字,即這兩位少了。說明本系統(tǒng)正確檢驗(yàn)出了這個(gè)錯(cuò)誤。其他的錯(cuò)誤幀類似。本機(jī)7.2.1這個(gè)平臺(tái)雖然比較簡(jiǎn)單,但是對(duì)于本系統(tǒng)的意義非常重要。因?yàn)楸鞠到y(tǒng)完成前,用硬件調(diào)試的過程中多次由于電壓,硬件問題等造成調(diào)試的,采用本平臺(tái)后,程序開發(fā)進(jìn)度大大增快。由于后期系統(tǒng)架構(gòu)調(diào)整,前期設(shè)計(jì)的本機(jī)程序被全部修改,但是相對(duì)于首次開發(fā),原來需要兩周左右的開發(fā)周期縮短到2天左右,完全滿足系統(tǒng)需求。圖 輸入正確幀的反應(yīng)(轉(zhuǎn)發(fā)圖 輸入錯(cuò)誤幀的反應(yīng)(長(zhǎng)度不夠,沒有校驗(yàn)位圖 校驗(yàn)位錯(cuò)誤返回的7.2.4,"~100201000100ec\r"eceb后返回錯(cuò)誤~1000020000EE,這實(shí)現(xiàn)本系統(tǒng)之后的開發(fā)工作就有純手動(dòng)工作轉(zhuǎn)入自動(dòng)化程度更高的調(diào)試方式。這個(gè)階段,本本圖 主機(jī)自動(dòng)掃描模式仿真電路圖 主機(jī)自動(dòng)掃描模式仿真效主主機(jī),上位機(jī),適配器TXD,RXD直接相本機(jī)圖 全網(wǎng)絡(luò)通信功能仿真平除了單獨(dú)測(cè)試用的仿真平臺(tái)外,也搭建了全局的仿真平臺(tái),只要將子系統(tǒng)和主系統(tǒng)的程序在系統(tǒng)級(jí)仿真中,排除了可能在總線上出現(xiàn)的一系列故障并調(diào)整了一系列的參數(shù),使得系2個(gè)小時(shí),沒有發(fā)生任何故障情況,在仿真平臺(tái)上,系統(tǒng)有過超過12小時(shí)的運(yùn)試。系統(tǒng)級(jí)仿真最大的意義在于,Proteus提供了一個(gè)虛擬串口模塊。通過一些其他,如SerialNull等,可以實(shí)現(xiàn)與本機(jī)物理串口連接,從而實(shí)現(xiàn)了和上位機(jī)的仿真接口工作。使得上位機(jī)開發(fā)工作同樣可以在PC上完成而不需要任何真實(shí)的硬件支持。這樣的仿真對(duì)于完善系統(tǒng)和協(xié)調(diào)EDA仿真的缺陷和本組遭遇 問首先,Proteus仿真ATmega16的通信功能中有一定偏差。主要表現(xiàn)在:對(duì)于串口緩存區(qū)UDR沒有做到及時(shí)清空。如果使用Proteus,在同一個(gè)中斷中多次調(diào)用緩存區(qū),緩存區(qū)的內(nèi)容是不變的。但是如果是真實(shí)主機(jī),緩存區(qū)被后即時(shí)被改變。如果一直使用UDR作為變量進(jìn)行比較將會(huì)導(dǎo)致嚴(yán)重的錯(cuò)誤,但是Proteus仿真結(jié)果卻不會(huì)顯示這樣的錯(cuò)誤。解決方案就是不要使用UDR作為變量,而應(yīng)當(dāng)在串口接收中斷觸發(fā)時(shí)及時(shí)保存緩存區(qū)內(nèi)容。第二,Proteus在進(jìn)行系統(tǒng)級(jí)仿真過程中占用系統(tǒng)資源很大,所以仿真時(shí)間將會(huì)超過實(shí)際的時(shí)第三,由于Proteus對(duì)于模擬器件,比如MAX483僅僅提供了邏輯級(jí)別,也就是功能仿真,這根據(jù)圖7.2.7全網(wǎng)絡(luò)通信功能仿真平臺(tái)可以看到上位機(jī),本機(jī)和總線適配器的接口直接用在沒有信號(hào)時(shí),TXD為高電平,而MAX483無(wú)力拉低電平,從而導(dǎo)致插上無(wú)線模塊后,ATmega16USART無(wú)法總線上數(shù)據(jù)。解決方案是使用二極管進(jìn)行,對(duì)無(wú)線模塊TXD端口反接整流用二極管,使得二極管僅能夠在TXD端為低電平時(shí)對(duì)USART輸入端口形成影響,而在高電平時(shí),由于二極管反向截止,MAX483可以拉USART端口電平,從而保證串口通信的正常進(jìn)行。這種方法具有一般性。對(duì)于普通數(shù)字電路中遇到的類似帶載能力不足問題可以通過這樣的法來實(shí)現(xiàn)扇入扇出控制。第四,SerialNull的穩(wěn)定性存疑。在使用虛擬串口調(diào)試主機(jī)的過程中多次發(fā)生藍(lán)屏故障,雖然使用虛擬機(jī)技術(shù)沒有性,但是這種藍(lán)屏對(duì)于使用硬件PC仿真會(huì)造成潛在的硬件損壞的可系統(tǒng)程序解主體程序結(jié)()voidport_init(void)PORTA=DDRA0xF0;PAPA7、PA6、PA5DDRB=0x00;PORTC0xf0;PCPC7、PC6、PC5、PC4DDRC=0x00;PCDDRD=}0初始化函數(shù)timer0_initvoidtimer0_init(void)TCCR0=0x00;//stopTCNT0=0x64;//setcountOCR0=0x9C;//setcompareTCCR0=0x04;//start}void{////8Data,1Stop,No// 0x03max//UBRRL= UCSRB|=UBRRL=}intPutChar(char{if(c=={}UDR=while(!(UCSRA&(1<<UDRE)));UCSRA|=(1<<UDRE);return}voidPutStr(unsignedchar{while(*Str!={}}if(*Str=='\r')}}checksum等是否正確,從(代碼太長(zhǎng),請(qǐng)見附錄(代碼太長(zhǎng),請(qǐng)見附錄Led燈顯示函數(shù)display_led(unsignedcharseg,unsignedcharvoiddisplay_led(unsignedcharseg,unsignedchar{unsignedcharPORTA&=~(1<<PA7);//PA7=0;for(i=0;i<8;i++)if((sel&0x80)==0)//最送U2SERPORTA&=~(1<<PA5);//PORTA|=(1<<PA5);//PORTA&=~(1<<PA6);PORTA|1PA6PA6=1srclk=1sel1selasc2num(unsignedcharaunsignedcharb),num2asc(unsignedintunsignedintasc2num(unsignedchara,unsignedchar{unsignedtmp=if('0'<=a&&a<=tmp+=((a-'0')<<elseif('a'<=a&&a<=tmp+=((a-'a'+10)<<elseif('A'<=a&&a<=tmp+=((a-'A'+10)<<if('0'<=b&&b<=tmp+=(b-'0');elseif('a'<=b&&b<='f')tmp+=(b-'a'+10);elseif('A'<=b&&b<='F')tmp+=(b-'A'+10);return}unsignedintnum2asc(unsignedint{if(0<=x&&x<=returnx+elseif(10<=x&&x<=15)returnx+'A'-10;}unsignedintcheckver()returnRsBuf[1]=='1'&&RsBuf[2]==unsignedintchecklen()returnlength==(2*asc2num(RsBuf[9],RsBuf[10])+}//ChecksumFunctionunsignedintchksum(){intsum=0,k;sum=0;for(k=1;k<=length-4;k+=2)sum+=asc2num(RsBuf[k],RsBuf[k+}sum=256-sum%returnsum==asc2num(RsBuf[length-3],RsBuf[length-}致 參考[2].科技創(chuàng)新[4A]課程講座1:總體設(shè)計(jì)要求.ppt[3].科技創(chuàng)新[4A課程講座2:通信協(xié)議及其程序設(shè)計(jì)[4].科技創(chuàng)新[4A]課程講座3:系統(tǒng)中若干局部電路的方案[6].科創(chuàng)[4A]RS422485主從通信協(xié)議(20093月19日).doc[7].往屆優(yōu)秀總體設(shè)計(jì)報(bào)告[8].科技創(chuàng)新[4A]-第6大組-本地系統(tǒng)及總線通信設(shè)計(jì)[9].ATmega16的版本[10].科創(chuàng)4A系列博客 [11].ubuntu+eclipsecdt構(gòu)建AVR開發(fā)環(huán)境 附錄A本系統(tǒng)與從機(jī)子系統(tǒng)之間的通信協(xié)一、總則本協(xié)議旨在對(duì)電院科技創(chuàng)新6的本系統(tǒng)與從機(jī)子系統(tǒng)之間的信息通信提供一個(gè)規(guī)范化的規(guī)定。在這個(gè)實(shí)驗(yàn)中,計(jì)劃采用總線式主從多機(jī)通信網(wǎng)絡(luò)來實(shí)現(xiàn)本系統(tǒng)與從機(jī)子系統(tǒng)之間的通信進(jìn)量并將測(cè)量數(shù)據(jù)在子系統(tǒng)單片機(jī)緩存中,僅當(dāng)本系統(tǒng)發(fā)出查詢指令時(shí)發(fā)回響應(yīng)幀;電機(jī)轉(zhuǎn)速測(cè)控子系統(tǒng)通過碼盤檢測(cè)電機(jī)轉(zhuǎn)速情況,并通過波對(duì)電機(jī)驅(qū)動(dòng)電路進(jìn)行控制,本地主系統(tǒng)對(duì)碼盤的檢測(cè)數(shù)據(jù)進(jìn)行指令,并通過對(duì)波生成參數(shù)進(jìn)行設(shè)定來實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的控制;水溫測(cè)控子系統(tǒng)使用AD轉(zhuǎn)換來控制水溫,本系統(tǒng)指令通過和改變AD轉(zhuǎn)換的輸出二、協(xié)議文01000101為子系統(tǒng)參數(shù)命令01020001為子系統(tǒng)接收命令后的響應(yīng)對(duì)于本系統(tǒng),將在一個(gè)額定的時(shí)間間隔后通過總線對(duì)各從機(jī)子系統(tǒng)發(fā)出硬件中斷指令,從而完成對(duì)從機(jī)子系統(tǒng)的參數(shù)的設(shè)置與。采取個(gè)從機(jī)子系統(tǒng)的數(shù)據(jù)保存在各子系統(tǒng)本地的單片機(jī)發(fā)出命令幀。如果在額定時(shí)間內(nèi)從機(jī)子系統(tǒng)沒有響應(yīng),則本系統(tǒng)向全局主系統(tǒng)發(fā)出故障信息。三、補(bǔ)充舉意為本系統(tǒng)設(shè)置水溫為64攝氏度(1900H=6400D),水溫測(cè)控子系統(tǒng)響應(yīng)響應(yīng)接收到設(shè)四、參考資科創(chuàng)[6]RS422485主從通信協(xié)議(2009319日附錄B主要開發(fā)地模擬示波器,計(jì)算機(jī)、5套基于ATMELATmega16AVR單片機(jī)系統(tǒng)開發(fā)板、基于MAX232,MAX483FSK433MHz無(wú)線通信模塊以及常規(guī)電子元器主要開發(fā)資源操作系統(tǒng):WindowsXPLinuxUbuntuWindowsAVRStudioEclipse附錄C程序1.1 系統(tǒng)程#include"main.h"#include"usart.h"#include<avr/io.h>main#ifndefMAIN_H#define#defineunsignedchardata[4]={0,0,0,0};unsignedcharCNT=0;unsignedcharKeyUp;*Createdon:2012-4-Author://AVRapplicationbuilder:2010-04-06//://Crystal:8.0000Mhz#defineMAIN_C#include"includes.h"#include<avr/io.h>#include<avr/interrupth>#include<util/delayh> 常量定 //1s定時(shí)器溢出值,200個(gè)5ms#defineV_T1s200//20ms定時(shí)器溢出值,4個(gè)5ms#defineV_T20ms //50ms定時(shí)器溢出值,10個(gè)5ms#defineV_T50ms //crystalfrequency//definebuffersize//maxresent//constunsignedintmrt=//Normal//unknownconstunsignedcharerr_unknown[]=//versionconstunsignedcharerr_version[]=//checksumconstunsignedcharerr_checksum[]=//datalengthconstunsignedcharerr_datLength[]=//bufferoverflowconstunsignedcharerr_buffover[]=//erroroccurtimesbiggerthanmaxresenttimesFinoneloopconstunsignedcharerr_Multitim[]=//intervalbetweentwodataoverconstunsignedcharerr_int2long[]= 變量定 //數(shù)碼管位和指示燈顯示數(shù)據(jù)unsignedchar//數(shù)碼管段顯示數(shù)據(jù)變unsignedchar//1s定時(shí)器計(jì)unsignedchar//1s定時(shí)器溢出標(biāo)unsignedcharvolatile//50ms定時(shí)器計(jì)unsignedchar//50ms定時(shí)器溢出標(biāo)unsignedcharvolatile//20ms定時(shí)器計(jì)unsignedchar//20ms定時(shí)器溢出標(biāo)unsignedcharvolatile//指示燈驅(qū)動(dòng)信號(hào)輸出緩unsignedcharled1,led2,led3,//數(shù)碼管掃描驅(qū)動(dòng)指unsignedchar//測(cè)試用計(jì)數(shù)unsignedint//測(cè)試用計(jì)數(shù)值十進(jìn)制表unsignedcharvolatile//lengthofcurrentreceivedmsgunsignedintlength=0;//stateindicatorunsignedintmod=0;//bufferunsignedintRsBytes=//localmodeinfounsignedintinfo=0;unsignedintsetflag=0;//beginreceivingflagunsignedintbegrec=0;//usartunsignedchar//usartbufferforlastunsignedcharLastRight[]=//localmodeunsignedcharecho[]=//localcontrolcommandunsignedcharcmd[]= 函數(shù)定 //7段數(shù)碼顯示譯//參數(shù) DATA:需要顯示的數(shù)字或符 返回值7段譯碼結(jié)果D7~0PGFEDCBAunsignedcharNUMTOSEG7(unsignedchar{unsignedcharAA;switch(DATA){case0:casecasecasecasecasecase

AA=break;//AA=break;//AA=break;//AA=break;//AA=break;//AA=break;//AA=casecasecasecasecasecasecasecasecase

break;//AA=break;//AA=break;//AA=break;//AA=break;//AA=break;//AA=break;//AA=break;//AA=break;//AA=break;//casecasecasecasecasecasecase

AA=break;//AA=break;//AA=break;//AA=break;//AA=break;//AA=break;//casecasecase

AA=break;//AA=break;//AA=break;//AA=break;//case'-casecase'}

AA=0xdf;AA=break;//下劃AA=0xff;AA=return}voiddisplay_led(unsignedcharseg,unsignedchar{unsignedchar//先將sel數(shù)據(jù)PORTA&=~(1<<PA7);//PA7=0;for(i=0;i<8;i++)if((sel&0x80)==0)//最送U2SERPORTA&=~(1<<PA5);//PORTA|=(1<<PA5);//PORTA&=~(1<<PA6);PORTA|1PA6PA6=1srclk=1,產(chǎn)生移位時(shí)鐘信sel1;//sel左移一}//再將seg74hc595for(i=0;i<8;i++){if((seg&0x80)==0)//最送U2SERPORTA&=~(1<<PA5);PORTA|=(1<<PA5);PORTA&=~(1<<PA6);PORTA|1PA6PA6=1srclk=1,產(chǎn)生移位時(shí)鐘信seg1;seg左移一}PORTA|=(1<<PA7);//PA7=1;PORTA&=~(1PA7);//PA7=0;rclk=0,產(chǎn)生鎖存輸出信}單片機(jī)端口初始void{PORTA=DDRA0xF0PAPA7、PA6、PA5為輸DDRB=PORTC=0xf0;//PC口PC7、PC6、PC5、PC4接上拉電DDRD=}//TIMER0initialize-//WGM://desiredvalue://actualvalue:200.321Hz(0.2%)voidtimer0_init(void){TCCR0=0x00;TCNT0=0x64;//setcountOCR0=0x9C;//setcompareTCCR0=0x04;//start}//callthisroutinetoinitializeallperipheralsvoidinit_devices(void){//stoperrantinterruptsuntilsetup//disableallGICR=0x00;TIMSK=0x01;//timerinterruptsources//re-enable//allperipheralsarenow}//showvoidshowerroradd(unsignedint{digi[0]=x>>digi[1]x816;digi[2x416計(jì)算個(gè)位數(shù)+16todisplaythe"0butnot"0"digi[3]=x%16;//計(jì)算小數(shù)點(diǎn)后1位數(shù)*}//toolfunctiontotransformasciiinto{unsignedtmp=if('0'<=a&&a<=tmp+=((a-'0')<<elseif('a'<=a&&a<=tmp+=((a-'a'+10)<<elseif('A'<=a&&a<=tmp+=((a-'A'+10)<<if('0'<=b&&b<=tmp+=(b-'0');elseif('a'<=b&&b<=tmp+=(b-'a'+10);elseif('A'<=b&&b<='F')tmp+=(b-'A'+return}//toolfunctiontotransformnumbertoasciiunsignedintnum2asc(unsignedintx){if(0<=x&&x<=returnx+'0';elseif(10<=x&&x<=15)returnx+'A'-}voidshowinfo(){digi[0]=mod;//standsfordigi[1]asc2num('0RsBuf[12計(jì)算十位unsignedinttmp=asc2num(RsBuf[13],digi[2tmp416;計(jì)算個(gè)位數(shù)+16todisplaythe0butnot0"digi[3]=tmp%16;//計(jì)算小數(shù)點(diǎn)后1位數(shù)*}//checkunsignedintcheckver()returnRsBuf[1]=='1'&&RsBuf[2]==}unsignedintchecklen(){returnlength==(2*asc2num(RsBuf[9],RsBuf[10])+}//ChecksumFunctionsum=0;for(k=1;k<=length-4;k+=2)sum+=asc2num(RsBuf[k],RsBuf[k+}sum=256-sum%PutStr(num2asc(sum>>4));PutPutStr("checksumCalculated\n");PutStr(RsBuf+length-3);Putreturnsum==asc2num(RsBuf[length-3],RsBuf[length-}//Functionforreceiveprocessvoidprocess(){//Put//checksum//privatewayif(mod==0&&RsBuf[3]=='0'&&RsBuf[4]=={PutStr(RsBuf);}else{if(!chksum())//distanceif((RsBuf[3]=='0'&&RsBuf[4]=='0'))Putshowerroradd(0x1E00+((LastRight[3]-'0')<<+(LastRight[4]-}else{PutStr(LastRight);}}//lengthelseif(!checklen())if((RsBuf[3]=='0'&&RsBuf[4]=='0'))Putshowerroradd(0x2E00+((LastRight[3]-'0')<<+(LastRight[4]-}else}}

PutStr(LastRight);//versionelseif(!checkver())if((RsBuf[3]=='0'&&RsBuf[4]=='0'))Putshowerroradd(0x3E00+((LastRight[3]-'0')<<+(LastRight[4]-}else}}

PutStr(LastRight);//informationwithnoerrorelse{if(mod==0)//if(cnt<mrt)Put//uploaderrortodistanceinti=1;for(;RsBuf[i-1]!='\r';LastRight[i]=RsBuf[i];}else{//disguisedas//multi-time//if(cnt> showerroradd(0xEF00+((LastRight[3]-'0')<< +(LastRight[4]-//reallyif(RsBuf[3]=='0'&&RsBuf[4]=='0'&&RsBuf[7]=={switch(RsBuf[8]){case'0':case

//versionshowerroradd(0xE100+((cmd[3]-'0')<<4)+-case

//checksumshowerroradd(0xE200+((cmd[3]-'0')<<4)+-case

//errorshowerroradd(0xE300+((cmd[3]-'0')<<4)+-case

//errorshowerroradd(0xE400+((cmd[3]-'0')<<4)+-case

//errorshowerroradd(0xE500+((cmd[3]-'0')<<4)+-}else

}

showerroradd(0xEd00+((cmd[3]-'0')<<4)+-showerroradd(0xEd00+((cmd[3]-'0')<<+(cmd[4]-}}}}}//generatechecksumvaluevoidchkgen(){unsignedintsum=0,sum=for(k=1;k<=10;k+=2)sum+=asc2num(echo[k],echo[k+}sum=256-sum%256;echo[11]=num2asc(sum>>4);echo[12]=num2asc(sum%16);sum=0;for(k=1;k<=12;k+=2)sum+=asc2num(cmd[k],cmd[k+}sum=256-sum%256;cmd[13]=num2asc(sum>>4);}//定時(shí)器05ms溢出中{TCNT0=0x64;//reloadcounter1秒鐘軟定時(shí)器計(jì)if(++clock1s>=V_T1s)clock1s_flag=1;//1秒到時(shí),溢出標(biāo)志置clock1s=}//50ms鐘軟定時(shí)器計(jì)if(++clock50ms>=1PORTC&=~(1<<PC1);//shutdowntheprivateline!clock50ms=0;}//20ms鐘軟定時(shí)器計(jì)if(++clock20ms>=V_T20ms&&begrec)clock20ms_flag=1;//20m秒到時(shí),溢出標(biāo)志置clock20ms=}//***檢測(cè)到按鍵被按下(0)時(shí),相應(yīng)的指示燈亮//檢測(cè)ifPINC&(1PC40)PC4,C口第4led1=led1=//檢測(cè)ifPINC&(1PC50)PC5,C口第5led2=led2=//檢測(cè)ifPINC&(1PC60)PC6,C口第6led3=led3=//檢測(cè)ifPINC&(1PC70)PC7,C口第7led4=led4=//數(shù)碼管掃描驅(qū)動(dòng)指針1到4重復(fù)變換,每5ms間隔對(duì)一個(gè)數(shù)碼管進(jìn)行驅(qū)動(dòng),20ms一個(gè)if(++digi_scaner>=digi_scaner=output_selled1*16led2*32led3*64led4*128;//四個(gè)發(fā)光管送高四位switch(digi_scaner){case1:取第一個(gè)數(shù)碼管顯示output_sel+=case2:取第二個(gè)數(shù)碼管顯示output_sel+=case3:取第三個(gè)數(shù)碼管顯示output_sel+=case4:取第四個(gè)數(shù)碼管顯示output_sel+=}display_led(output_8seg,output_sel);//串轉(zhuǎn)并輸}ISR(USART_RXC_vect){RsBuf[RsBytes]=//startingif(RsBuf[RsBytes-1]=='~')RsBytes=1

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論