基于CAN總線的modbus通信設(shè)計【實用文檔】doc_第1頁
基于CAN總線的modbus通信設(shè)計【實用文檔】doc_第2頁
基于CAN總線的modbus通信設(shè)計【實用文檔】doc_第3頁
基于CAN總線的modbus通信設(shè)計【實用文檔】doc_第4頁
基于CAN總線的modbus通信設(shè)計【實用文檔】doc_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于CAN總線的modbus通信設(shè)計【實用文檔】doc文檔可直接使用可編輯,歡迎下載

基于CAN總線的modbus通信設(shè)計基于CAN總線的modbus通信設(shè)計【實用文檔】doc文檔可直接使用可編輯,歡迎下載摘要:CAN總線是由德國BOSCH公司開發(fā)了的,其主要用于汽車計算機控制系統(tǒng),而在工業(yè)控制領(lǐng)域較少適用,在工業(yè)領(lǐng)域用的最多的是RS485總線。CAN總線較RS485總線具有網(wǎng)絡(luò)各節(jié)點之間的數(shù)據(jù)通信實時性強,開發(fā)周期短,已形成國際標準的現(xiàn)場總線等優(yōu)點.因此CAN總線是比較有前途的現(xiàn)場總線之一,在工業(yè)控制領(lǐng)域代替RS485是有可能的。 為了能簡單地應(yīng)用CAN總線代替RS485總線,如果采用比如CANopen等協(xié)議使得設(shè)備變得復(fù)雜化,那么有沒有簡單點的協(xié)議?很多做過工業(yè)設(shè)備的工程師都熟悉MODBUS協(xié)議,在RS485總線上跑的最多的協(xié)議就是MODBUS,如果我們在CAN總線上運行MODBUS協(xié)議,那么做過RS485的工程師就能很快地轉(zhuǎn)移過來,減少了開發(fā)難度.所以本文就以CAN總線上跑MODBUS協(xié)議為目的對數(shù)據(jù)網(wǎng)絡(luò)層協(xié)議進行設(shè)計。概念:MODBUS有主從概念,CAN總線支持多主,在這里我們把主機叫做客戶端,從機叫做服務(wù)器.在CAN總線上采用客戶端服務(wù)器的概念。在進行協(xié)議介紹前先對CANMODBUS進行簡單的介紹。MODBUS:閱讀過MODBUS協(xié)議的人都知道m(xù)odbus有ASCII和RTU模式,其中RTU模式用的較多,一個數(shù)據(jù)包在網(wǎng)絡(luò)上傳輸我們必須知道包的開始和結(jié)束,在RTU模式中數(shù)據(jù)包是以至少3.5個字符的靜默時間開始和結(jié)束的,如果信息結(jié)束前存在超過1。5個字符以上的間隔時間則出錯.為了檢測這些時間間隔,在程序上將變得很被動。ASCII雖然有專用的開始結(jié)束標志符,但是ASCII需要把一個字節(jié)數(shù)據(jù)傳換為兩個字符發(fā)送所以其效率低。所以還是得采用RTU模式,但得根據(jù)CAN總線的特點解決數(shù)據(jù)包開始結(jié)束標志的定義.CAN總線:CAN總線的數(shù)據(jù)傳輸是以幀為單位的,一個幀包含標識符、數(shù)據(jù)段CRC等,標識符表示該幀的發(fā)送優(yōu)先級,數(shù)據(jù)段包含實際的數(shù)據(jù),數(shù)據(jù)長度從1到8字節(jié),CRC對該幀進行校驗,因為幀中包含了數(shù)據(jù)校驗功能,所以在CAN上跑modbus就不需要再對數(shù)據(jù)進行CRC校驗。在這里我們看到CAN總線是有優(yōu)先級這個概念,但是沒有出現(xiàn)像modbus這樣有地址的概念,CAN總線上標識符段表示的是該幀的優(yōu)先級,它面向的是數(shù)據(jù),而modbus面向的是設(shè)備,每個數(shù)據(jù)包中都有地址,如果我們把地址放在CAN幀的數(shù)據(jù)段中那么所有設(shè)備都必須接收每一幀,然后對數(shù)據(jù)進行解析,如果網(wǎng)絡(luò)負載比較大的是時候,這對設(shè)備不利。CAN控制器一般都能對特定的標識符段進行過濾,那么我們?yōu)槭裁床荒馨褬俗R符段作為設(shè)備的地址,然后設(shè)備對特定的標識符進行過濾,這樣就減少了設(shè)備的負擔.但是如果標識符段作為目的地址,那么CAN總線上就不能有兩個主機,應(yīng)為CAN總線規(guī)定不能有兩個相同標識符的幀同時發(fā)送。既然標識符符不能作為目的地址,那么就實現(xiàn)不了設(shè)備對數(shù)據(jù)的過濾。我的解決辦法是把幀的標識符段分為兩部分,一部分為發(fā)送方地址,另一部分為接收方地址,其中接收方地址在標識符的高端。這樣我們就能通過表標識符段知道這幀數(shù)據(jù)是誰發(fā)給誰的,對于接收方它通過設(shè)置過濾器只接收表識符高端數(shù)據(jù)為自己地址的幀,這樣就解決了CAN總線中地址的概念。這個地址還表示的設(shè)備的優(yōu)先級,地址越小優(yōu)先級就越高,接收方地址和發(fā)送方地址就決定這幀的發(fā)送優(yōu)先級。標識符段分為標準幀和擴展幀,標準幀的標識符為11bit,擴展幀的標識符為29bit,按照接收方地址加發(fā)送方地址的分配方法標準幀的地址范圍為0~31,共計32個地址,如果用擴展幀的來分配地址范圍為0~16383,共計16384個地址。標識符接收方地址發(fā)送方地址因為一幀最多能發(fā)送8字節(jié)數(shù)據(jù),因此要發(fā)送超過8字節(jié)的數(shù)據(jù)就必須使用多幀,為了能適應(yīng)多任務(wù)環(huán)境,我們在把幀的數(shù)據(jù)段的前兩自己數(shù)據(jù)用作特殊用途:第一字節(jié)表示幀數(shù)據(jù)的ID,其bit7為1:表示服務(wù)器返回的數(shù)據(jù)幀,為0:表示客戶端請求的數(shù)據(jù)幀;第二字節(jié)表示著一幀在這個數(shù)據(jù)包中的相對為位置,其bit7為1:表示這是最后一幀,因此我們可以根據(jù)這一幀就能計算出此次要傳輸?shù)臄?shù)據(jù)字節(jié)數(shù),有這兩字節(jié)的數(shù)據(jù)我們就能把一個數(shù)據(jù)包分成多個幀發(fā)送出去,然后在接收方根據(jù)這兩字節(jié)的信息把數(shù)據(jù)包從新組裝。由第二字節(jié)信息我們可以計算出一次能傳輸?shù)臄?shù)據(jù)包的大小為128*6=768字節(jié)。你也許會問,那個ID數(shù)據(jù)有什么用,為了支持多任務(wù)處理,一個客服端可能有多個任務(wù)同時把數(shù)據(jù)發(fā)送到同一個服務(wù)器,這個ID就是區(qū)分不同任務(wù)的,客戶端發(fā)送到的時候分配一個空閑的ID然后以此ID把數(shù)據(jù)發(fā)送出去。服務(wù)器接受到同一個客服端發(fā)來的不同ID的數(shù)據(jù)包,那么服務(wù)器就根據(jù)ID的不同分別處理;回復(fù)客戶端時把ID的最高位置1,然后發(fā)送回去,客服端收到發(fā)回復(fù)后根據(jù)ID把數(shù)據(jù)分發(fā)給對應(yīng)的任務(wù)。一個設(shè)備可以是客戶端也可以是服務(wù)器,還可以包含兩者,那么CAN接收服務(wù)程序就必須明確接收到的數(shù)據(jù)是自己收到的回復(fù)還是別人的請求,因此ID的最高位就是區(qū)分數(shù)據(jù)方向的.在這里規(guī)定ID為0表示無效ID,故ID的取值范圍為1到127。因此能同時區(qū)分同一個設(shè)備的127個不同數(shù)據(jù)包。在回頭想想采用了這個結(jié)構(gòu)后也就解決了MODBUS數(shù)據(jù)包的開始和結(jié)束的問題。那么MODBUS就可也在CAN總線上運行了.在CAN總線上已經(jīng)包含了地址和CRC數(shù)據(jù),因此MODBUS上就不在需要地址段和CRC段。另外一個幀中包含6個數(shù)據(jù),因此大多數(shù)MODBUS數(shù)據(jù)包都能夠通過一幀發(fā)送出去.基于LPC2292的CAN通信程序設(shè)計CAN驅(qū)動層:CAN驅(qū)動層主要做的工作是初始化設(shè)備,收發(fā)數(shù)據(jù),下面是集CAN功能函數(shù)的結(jié)構(gòu)體typedef? struct{uint8_t(*Init)(uint8_tport,uint16_taddr); void??(*Open)(uint8_tport);?void ?(*Close)(uint8_tport);uint8_t?(*Wirte)(uint8_tport,Message*m);?void (*SetBPS)(uint8_tport,uint32_tbaud);}can_device;uint8_t(*Init)(uint8_tport,uint16_taddr);初始化設(shè)備,port:端口號,指示初始化哪個CAN,addr:設(shè)備在通信中的地址,地址的長度要根據(jù)標準幀或者擴展幀定義。返回1:成功0:失敗void(*Open)(uint8_tport);打開設(shè)備void(*Close)(uint8_tport);關(guān)閉設(shè)備uint8_t (*Wirte)(uint8_tport,Message*m);向設(shè)備寫數(shù)據(jù)void?(*SetBPS)(uint8_tport,uint32_tbaud);設(shè)置通信速率消息結(jié)構(gòu)體如下typedefstruct{uint32_tcob_id; /**<message’sID*/uint8_trtr; /**〈remotetransmissionrequest。(0ifnotrtrmessage,1ifrtrmessage)*/uint8_tlen;? /**〈message'slength(0to8)*/uint8_tdata[8];/**<message'sdatas*/}Message;另外CAN接收中斷服務(wù)程序序調(diào)用voidCAN_msg_dispatch(can_uint8port,Message*m),該函數(shù)對每一幀數(shù)據(jù)進行解析其工作流程如下:接收到can數(shù)據(jù)接收到can數(shù)據(jù)解析數(shù)據(jù)的ID,ADDR在接收鏈表中是否存在相同ADDR和ID的數(shù)據(jù)包把數(shù)據(jù)存入對應(yīng)的數(shù)據(jù)包是否接收完成?把接收完成的數(shù)據(jù)包發(fā)送給接收服務(wù)任務(wù)是是獲取空閑包,并把數(shù)據(jù)存進數(shù)據(jù)包否等待新數(shù)據(jù)說明:在試驗中用的操作系統(tǒng)為ucosII2.86,把接收完成的數(shù)據(jù)包發(fā)送給接收服務(wù)任務(wù)是通過消息郵箱把數(shù)據(jù)包發(fā)送給接收服務(wù)任務(wù)的。下面是數(shù)據(jù)包的結(jié)構(gòu)體:typedef?struct{ uint8_t port;?uint16_t addr; uint8_t?id; uint16_t?size;?uint16_ttotal_size; uint8_t message[CAN_MAX_LEN];?uint8_t?ttl; void?*next;}can_pkg;Port:設(shè)備端口Addr:數(shù)據(jù)來源地址Id:包IDSize:包的當前大小total_size:包的總大小message:消息緩沖區(qū)ttl:該包的生命周期next:指向下一個包total_size:是通過接收到最后一幀數(shù)據(jù)計算出來的,當size=total_size時表示接收完成message是一個數(shù)組,這里為了設(shè)計簡單采用了數(shù)組,這個用戶可以靈活設(shè)計成動態(tài)分配ttl:當接收一個包時,如果傳輸過程中丟失一個幀那么這個包就永遠不能接收完成,因此設(shè)置了TTL沒個周期掃描一次,TTL減一,當TTL等于0時,不管接收是否完成,都將把包移除接收鏈表。Next:指向下一個包的指針,用作單向鏈表。包在工作過程中分為三種狀態(tài)使用狀態(tài):包正在接收數(shù)據(jù)游離裝態(tài):數(shù)據(jù)接收完成,等待處理空閑狀態(tài):包處于空閑狀態(tài)發(fā)送過程:發(fā)送過程建議采用對列中斷發(fā)送,發(fā)送中斷產(chǎn)生后通過查看隊列中是否還有要發(fā)送的數(shù)據(jù)來循環(huán)發(fā)送,上層應(yīng)用只需向隊列寫數(shù)據(jù)。數(shù)據(jù)包ID采用遞增循環(huán)方式發(fā)送,沒發(fā)送一個新的數(shù)據(jù)包時,將在上次分配的ID上加1然后產(chǎn)看該ID是否實用,如果沒有使用,將采用該ID,否者ID繼續(xù)加1,直到找到空閑的ID,如果所有ID都在使用那么ID將返回0表示沒有可用ID分配.staticvoid*?id_queue[CAN_MAX_ID];ID分配隊列是一個void*的數(shù)據(jù),它指向的數(shù)據(jù)類型是用戶定義的,它的作用是當接收服務(wù)任務(wù)接收到回應(yīng)的數(shù)據(jù)時,通過該數(shù)據(jù)把接收的信息發(fā)送給使用該ID的任務(wù)。來自紅葉 RedLeaf江蘇科技大學本科畢業(yè)設(shè)計(論文)學院電子信息學院專業(yè)電氣工程及其自動化學生姓名于進班級學號0745533140指導教師袁文華二零一一年五月江蘇科技大學畢業(yè)論文基于CP430的MODBUS通訊程序設(shè)計BasedontheCP430MODBUScommunicationprogramdesign江蘇科技大學畢業(yè)設(shè)計(論文)任務(wù)書學院名稱:電子信息學院專業(yè):電氣工程及其自動化學生姓名:于進學號:0745533140指導教師:袁文華職稱:講師2011畢業(yè)設(shè)計(論文)題目:基于CP340的MODBUS通訊程序設(shè)計畢業(yè)設(shè)計(論文)內(nèi)容及要求(包括原始數(shù)據(jù)、技術(shù)要求、達到的指標和應(yīng)做的實驗等)1提供條件:PLC軟件及相關(guān)MODBUS通訊的資料。2設(shè)計內(nèi)容與要求:(1)學習、理解S7—300PLC軟件的使用;(2)學習、理解MODBUS通訊的原理;(3)結(jié)合MODBUS通訊的原理,利用S7-300PLC軟件編寫出程序;(4)撰寫論文,通過答辯。二、完成后應(yīng)交的作業(yè)(包括各種說明書、圖紙等)1。畢業(yè)設(shè)計論文一份(不少于1.5萬字);2。外文譯文一篇(不少于5000英文單詞);3。包含任務(wù)書、開題報告、中期檢查和前三項內(nèi)容的光盤一張。完成日期及進度2011年3月21日至進度安排:3。14-3。28,熟悉任務(wù)要求,查閱資料,翻譯外文資料;3.28-4.18,學習、理解MODBUS通訊的原理;4。18-4.30,學習、理解S7-300PLC軟件的使用;5.1-5。30,利用S7—300PLC軟件,編寫程序;5.31-6.29,撰寫畢業(yè)論文、答辯。主要參考資料(包括書刊名稱、出版年月等):1。MODBUS國標參考資料.2.西門子S7-300/400PLC編程與應(yīng)用,劉華波,何文雪,王雪編著。3.西門子S7-300/400PLC控制系統(tǒng)設(shè)計與應(yīng)用,陳章平等編著系(教研室)主任:(簽章)年月日學院主管領(lǐng)導:(簽章)年月日摘要計算機技術(shù)的飛速發(fā)展,使得現(xiàn)代工業(yè)生產(chǎn)和控制系統(tǒng)變得越來越復(fù)雜性,同時騎可靠性、實時性、精確性要求也越來越高。現(xiàn)場總線技術(shù)為控制系統(tǒng)性能提高提供了新的思路,發(fā)展現(xiàn)場總線技術(shù)的初衷是建立開放的控制通信網(wǎng)絡(luò).由于歷史原因,不同系統(tǒng)的現(xiàn)場總線協(xié)議差異很大。不同總線協(xié)議應(yīng)用范圍也有所差異。MODBUS協(xié)議定義了控制器能識別和使用的信息結(jié)構(gòu)。廣泛用于工業(yè)通信領(lǐng)域,其優(yōu)點是實時性好,可靠性高,適用于小到中等規(guī)模的數(shù)據(jù)傳輸,如典型應(yīng)用于的可編程控制器(PLC).協(xié)議采用主機輪詢機制,主設(shè)備發(fā)出查詢請求,要求從設(shè)備執(zhí)行某種動作;從設(shè)備收到查詢請求后,識別是否本地數(shù)據(jù)執(zhí)行相應(yīng)的動作,組織應(yīng)答,將執(zhí)行的狀況或相關(guān)數(shù)據(jù)反饋到主設(shè)備。本文在研究Modbus協(xié)議規(guī)則,詳細分析Modbus協(xié)議的原理,然后通過西門子STEP7軟件,運用CP430做Modbus從站程序,實現(xiàn)Modbus從站接受檢驗功能。關(guān)鍵字:Modbus,CP430,從站,協(xié)議AbstractTherapiddevelopmentofcomputertechnology,makesthemodernindustrialproductionandcontrolsystemisbecomingmoreandmorecomplexitywhileridingareliability,real-time,andmoreandmoreisalsohighprecisionrequirements.TheModbustechnologyforcontrolsystemperformanceprovidesnewideas,improvethedevelopmentoftheModbustechnologyintendedtoestablishanopencontrolcommunicationnetwork.Owingtohistoricalreasons,thedifferentsystemsModbusagreementdifferenceisverybig.Differentbusagreementapplicationalsodifferent.MODBUSagreementdefinesthecontrollercanidentifyanduseofinformationstructure.Widelyusedinindustrialcommunicationfield,itsadvantageisgoodreal-time,highreliability,applicabletosmalltomediumsizeofdat(yī)atransmission,suchasthetypicalapplicationinprogrammablecontroller(PLC)。TheprotocolUSEShostpollingmechanism,themainequipmentandissuequeriesrequest,demandfromequipmentperformanaction;Afterreceivedfromthedevicequeries,identifywhethersomeactionlocaldataexecution,theorganizat(yī)ionresponse,willimplementationstatusorrelateddatafeedbacktothemainequipment.Basedonthestudy,detailedanalysisModbusagreementrulestheprincipleofModbusagreementbySiemens,andthenCP430STEP7software,usingModbus,slavestationprogramdorealizeModbusfunctionsslavestationacceptinspection。Keyword:Modbus,CP430,slavestation,theagreement目錄TOC\o"1-3"\h\z\uHYPERLINK\l”_Toc294815258”第一章緒論PAGEREF_Toc294815258\h5HYPERLINK\l"_Toc294815259"1.1課題研究PAGEREF_Toc294815259\h51.2國內(nèi)外對于實現(xiàn)ModBus的現(xiàn)狀PAGEREF_Toc294815260\h6HYPERLINK\l"_Toc294815261"1.2.1通過FPGA實現(xiàn)Modbus94815261\h61。2.2通過51單片機實現(xiàn)ModbusPAGEREF_Toc294815262\h6HYPERLINK\l”_Toc294815263"1.2。3用過PLC實現(xiàn)ModbusPAGEREF_Toc294815263\h6HYPERLINK\l”_Toc294815264”1.3本文的組織結(jié)構(gòu)PAGEREF_Toc294815264\h7HYPERLINK=沒有等待的請求。這是電源上電后的初始狀態(tài)。當收到一個請求時,子節(jié)點在處理請求中要求的動作前檢驗報文包。不同的錯誤可以發(fā)生于:請求的格式錯,非法動作,……當檢測到錯誤時,必須向主節(jié)點發(fā)送應(yīng)答。當要求的動作完成后,單播報文要求必須格式化一個應(yīng)答并發(fā)往主節(jié)點。如果子節(jié)點在接收到的幀中檢測到錯誤,則沒有響應(yīng)返回到主節(jié)點。任何子節(jié)點均應(yīng)該定義并管理Modbus診斷計數(shù)器以提供診斷信息.通過使用Modbus診斷功能碼,可以得到這些計數(shù)值。2。2總體描述MODBUS協(xié)議定義了一個與基礎(chǔ)通信層無關(guān)的簡單協(xié)議數(shù)據(jù)單元(PDU).特定總線或網(wǎng)絡(luò)上的MODBUS協(xié)議映射能夠在應(yīng)用數(shù)據(jù)單元(ADU)上引入一些附加域。圖2-4通用MODBUS幀啟動MODBUS事務(wù)處理的客戶機創(chuàng)建MODBUS應(yīng)用數(shù)據(jù)單元。功能碼向服務(wù)器指示將執(zhí)行哪種操作.MODBUS協(xié)議建立了客戶機啟動的請求格式。用一個字節(jié)編碼MODBUS數(shù)據(jù)單元的功能碼域。有效的碼字范圍是十進制1-255(128-255為異常響應(yīng)保留)。當從客戶機向服務(wù)器設(shè)備發(fā)送報文時,功能碼域通知服務(wù)器執(zhí)行哪種操作。向一些功能碼加入子功能碼來定義多項操作.從客戶機向服務(wù)器設(shè)備發(fā)送的報文數(shù)據(jù)域包括附加信息,服務(wù)器使用這個信息執(zhí)行功能碼定義的操作。這個域還包括離散項目和寄存器地址、處理的項目數(shù)量以及域中的實際數(shù)據(jù)字節(jié)數(shù)。在某種請求中,數(shù)據(jù)域可以是不存在的(0長度),在此情況下服務(wù)器不需要任何附加信息。功能碼僅說明操作。如果在一個正確接收的MODBUSADU中,不出現(xiàn)與請求MODBUS功能有關(guān)的差錯,那么服務(wù)器至客戶機的響應(yīng)數(shù)據(jù)域包括請求數(shù)據(jù).如果出現(xiàn)與請求MODBUS功能有關(guān)的差錯,那么域包括一個異常碼,服務(wù)器應(yīng)用能夠使用這個域確定下一個執(zhí)行的操作。例如,客戶機能夠讀一組離散量輸出或輸入的開/關(guān)狀態(tài),或者客戶機能夠讀/寫一組寄存器的數(shù)據(jù)內(nèi)容。當服務(wù)器對客戶機響應(yīng)時,它使用功能碼域來指示正常(無差錯)響應(yīng)或者出現(xiàn)某種差錯(稱為異常響應(yīng))。對于一個正常響應(yīng)來說,服務(wù)器僅對原始功能碼響應(yīng).圖2—5Modbus事物處理(無差錯)圖2-6Modbus事物處理(異常響應(yīng))2.3兩種傳輸方式控制器能設(shè)置為兩種傳輸模式(ASCII或RTU)中的任何一種在標準的Modbus網(wǎng)絡(luò)通信。用戶選擇想要的模式,包括串口通信參數(shù)(波特率、校驗方式等),在配置每個控制器的時候,在一個Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。2.3。1RTU模式當控制器設(shè)為在Modbus網(wǎng)絡(luò)上以RTU(遠程終端單元)模式通信,在消息中的每個8Bit字節(jié)包含兩個4Bit的十六進制字符。這種方式的主要優(yōu)點是:在同樣的波特率下,可比ASCII方式傳送更多的數(shù)據(jù)。代碼系統(tǒng)?8位二進制,十六進制數(shù)0。。。9,A.。.F?消息中的每個8位域都是一個兩個十六進制字符組成每個字節(jié)的位?1個起始位?8個數(shù)據(jù)位,最小的有效位先發(fā)送?1個奇偶校驗位,無校驗則無?1個停止位(有校驗時),2個Bit(無校驗時)錯誤檢測域?CRC(循環(huán)冗長檢測)2。3。2ASCII傳輸模式當控制器設(shè)為在Modbus網(wǎng)絡(luò)上以ASCII(美國標準信息交換代碼)模式通信,在消息中的每個8Bit字節(jié)都作為兩個ASCII字符發(fā)送。這種方式的主要優(yōu)點是字符發(fā)送的時間間隔可達到1秒而不產(chǎn)生錯誤.代碼系統(tǒng)?十六進制,ASCII字符0...9,A。..F?消息中的每個ASCII字符都是一個十六進制字符組成每個字節(jié)的位?1個起始位?7個數(shù)據(jù)位,最小的有效位先發(fā)送?1個奇偶校驗位,無校驗則無?1個停止位(有校驗時),2個Bit(無校驗時)錯誤檢測域?LRC(縱向冗長檢測)2.3。2.1ASCII報文幀由發(fā)送設(shè)備將Modbus報文構(gòu)造為帶有已知起始和結(jié)束標記的幀.這使設(shè)備可以在報文的開始接收新幀,并且知道何時報文結(jié)束。不完整的報文必須能夠被檢測到而錯誤標志必須作為結(jié)果被設(shè)置。報文幀的地址域含有兩個字符。在ASCII模式,報文用特殊的字符區(qū)分幀起始和幀結(jié)束。一個報文必須以一個‘冒號’(:)(ASCII十六進制3A)起始,以‘回車-換行’(CRLF)對(ASCII十六進制0D和0A)結(jié)束。對于所有的域,允許傳送的字符為十六進制0–9,A–F(ASCII編碼)。設(shè)備連續(xù)的監(jiān)視總線上的‘冒號'字符。當收到這個字符后,每個設(shè)備解碼后續(xù)的字符一直到幀結(jié)束.報文中字符間的時間間隔可以達一秒。如果有更大的間隔,則接受設(shè)備認為發(fā)生了錯誤。下圖顯示了一個典型的報文幀必然的,ModbusASCII幀的最大尺寸為513個字符圖2-7ASCII報文幀2.3.2.2ASCII傳輸模式狀態(tài)圖圖2-8ASCII傳輸狀態(tài)圖上面狀態(tài)圖的一些解釋:“空閑"態(tài)是沒有發(fā)送和接收報文要處理的正常狀態(tài).每次接收到”:”字符表示新的報文的開始.如果在一個報文的接收過程中收到該字符,則當前地報文被認為不完整并被丟棄。而一個新的接收緩沖區(qū)被重新分配。檢測到幀結(jié)束后,完成LRC計算和檢驗。然后,分析地址域以確定幀是否發(fā)往此設(shè)備,如果不是,則丟棄此幀。為了減少接收處理時間,地址域可以在一接到就分析,而不需要等到整個幀結(jié)束。2.4LRC校驗使用ASCII模式,消息包括了一基于LRC方法的錯誤檢測域。LRC域檢測了消息域中除開始的冒號及結(jié)束的回車換行號外的內(nèi)容。LRC域是一個包含一個8位二進制值的字節(jié)。LRC值由傳輸設(shè)備來計算并放到消息幀中,接收設(shè)備在接收消息的過程中計算LRC,并將它和接收到消息中LRC域中的值比較,如果兩值不等,說明有錯誤。LRC方法是將消息中的8Bit的字節(jié)連續(xù)累加,丟棄了進位。LRC簡單函數(shù)如下:staticunsignedcharLRC(auchMsg,usDataLen)unsignedchar*auchMsg;/*要進行計算的消息*/unsignedshortusDataLen;/*LRC要處理的字節(jié)的數(shù)量*/{unsignedcharuchLRC=0;/*LRC字節(jié)初始化*/while(usDat(yī)aLen-—)/*傳送消息*/uchLRC+=*auchMsg++;/*累加*/return((unsignedchar)(-((char_uchLRC)));}2.5功能碼定義2。5.1功能碼分類有三類MODBUS功能碼.它們是:(1)公共功能碼是較好地被定義的功能碼,保證是唯一的,MODBUS組織可改變的,公開證明的,具有可用的一致性測試,MBIETFRFC中證明的,包含已被定義的公共指配功能碼和未來使用的未指配保留供功能碼。(2)用戶定義功能碼有兩個用戶定義功能碼的定義范圍,即65至72和十進制100至110。用戶沒有MODBUS組織的任何批準就可以選擇和實現(xiàn)一個功能碼不能保證被選功能碼的使用是唯一的。如果用戶要重新設(shè)置功能作為一個公共功能碼,那么用戶必須啟動RFC,以便將改變引入公共分類中,并且指配一個新的公共功能碼.(3)保留功能碼一些公司對傳統(tǒng)產(chǎn)品通常使用的功能碼,并且對公共使用是無效的功能2。5.2功能碼定義表ModBus網(wǎng)絡(luò)是一個工業(yè)通信系統(tǒng),由帶智能終端的可編程序控制器和計算機通過公用線路或局部專用線路連接而成。其系統(tǒng)結(jié)構(gòu)既包括硬件、亦包括軟件。它可應(yīng)用于各種數(shù)據(jù)采集和過程監(jiān)控。下表2-1是ModBus的功能碼定義。表2-1功能碼定義表功能碼名稱作用01讀取線圈狀態(tài)取得一組邏輯線圈的當前狀態(tài)(ON/OFF)02讀取輸入狀態(tài)取得一組開關(guān)輸入的當前狀態(tài)(ON/OFF)03讀取保存寄存器在一個或多個保持寄存器中取得當前的二進制符04讀取輸入寄存器在一個或多個輸入寄存器中取得當前的二進制值05設(shè)置單線圈強制一個邏輯線圈的通斷狀態(tài)06預(yù)設(shè)單寄存器把具體二進制值裝入一個保持寄存器07讀取異常狀態(tài)取得8個內(nèi)部線圈的通斷狀態(tài),這8個線圈的地址由控制器決定,用戶邏輯可以將這些線圈定義,以說明從機狀態(tài),短報文適宜于迅速讀取狀態(tài)08回送診斷校驗把診斷校驗報文送從機,以對通信處理進行評鑒09編程(只用于484)使主機模擬編程器作用,修改PC從機邏輯10控詢(只用于484)可使主機與一臺正在執(zhí)行程序任務(wù)從機通信.探尋該從機是否已完成其操作任務(wù),僅在含有功能碼9的報文發(fā)送后,本功能碼才發(fā)送11讀取時間計數(shù)可使主機發(fā)出單詢問,并隨即判定操作是否成功,尤其是該命令或其他應(yīng)答產(chǎn)生通信錯誤時12讀取通信事件記錄可使主機檢索每臺從機的Modbus事物處理通信事件記錄。13編程(184/384484584)可使主機模擬編程器功能修改PC從機邏輯14探尋(184/384484584)可使主機與正在執(zhí)行任務(wù)的從機通信,定期控詢該從機是否已完成其程序操作,僅在含有功能13的報文發(fā)送后,本功能碼才發(fā)送15強置多線圈強置一串連續(xù)邏輯線圈的通斷16預(yù)置多寄存器把具體的二進制值裝入一串連續(xù)的保持寄存器17報告從機標識可使主機判斷編址從機的類型及該從機運行指示燈的狀態(tài)18(884和MICRO84)可使主機模擬編程功能,修改PC狀態(tài)邏輯19重置通信鏈路發(fā)生非可修改錯誤后,是從機復(fù)位于已知狀態(tài),可重置順序字節(jié)20讀取通用參數(shù)(584L)顯示擴展存儲器文件中的數(shù)據(jù)信息21寫入通用參數(shù)(584L)把通用參數(shù)寫入擴展儲存文件,或修改之22—64保留擴展功能備用65-72保留以備用戶功能所用留作用戶功能的擴展編碼73-119非法功能120-127保留留作內(nèi)部作用128-255保留用于異常應(yīng)答ModBus網(wǎng)絡(luò)只是一個主機,所有通信都由他發(fā)出。網(wǎng)絡(luò)可支持247個之多的遠程從屬控制器,但實際所支持的從機數(shù)要由所用通信設(shè)備決定。采用這個系統(tǒng),各PC可以和中心主機交換信息而不影響各PC執(zhí)行本身的控制任務(wù)。表2-2是ModBus各功能碼對應(yīng)的數(shù)據(jù)類型。表2-2功能碼與數(shù)據(jù)類型對應(yīng)表代碼功能數(shù)據(jù)類型01讀位02讀位03讀整型、字符型、狀態(tài)字、浮點型04讀整型、狀態(tài)字、浮點型05寫位06寫整型、字符型、狀態(tài)字、浮點型08N/A重復(fù)“回路反饋”信息15寫位16寫整型、字符型、狀態(tài)字、浮點型17讀字符型2.6Modbus異常響應(yīng)當客戶機設(shè)備向服務(wù)器設(shè)備發(fā)送請求時,客戶機希望一個正常響應(yīng)。從主站詢問中出現(xiàn)下列四種可能事件之一:如果服務(wù)器設(shè)備接收到無通信錯誤的請求,并且可以正常地處理詢問,那么服務(wù)器設(shè)備將返回一個正常響應(yīng)。如果由于通信錯誤,服務(wù)器沒有接收到請求,那么不能返回響應(yīng)??蛻魴C程序?qū)⒆罱K處理請求的超時狀態(tài)。如果服務(wù)器接收到請求,但是檢測到一個通信錯誤(奇偶校驗、LRC、CRC、...),那么不能返回響應(yīng)。客戶機程序?qū)⒆罱K處理請求的超時狀態(tài).如果服務(wù)器接收到無通信錯誤的請求,但不能處理這個請求(例如,如果請求讀一個不存在的輸出或寄存器),服務(wù)器將返回一個異常響應(yīng),通知用戶錯誤的本質(zhì)特性。異常響應(yīng)報文有兩個與正常響應(yīng)不同的域:功能碼域:在正常響應(yīng)中,服務(wù)器利用響應(yīng)功能碼域來應(yīng)答最初請求的功能碼。所有功能碼的最高有效位(MSB)都為0(它們的值都低于十六進制80).在異常響應(yīng)中,服務(wù)器設(shè)置功能碼的MSB為1。這使得異常響應(yīng)中的功能碼值比正常響應(yīng)中的功能碼值高十六進制80。通過設(shè)置功能碼的MSB,客戶機的應(yīng)用程序能夠識別異常響應(yīng),并且能夠檢測異常碼的數(shù)據(jù)域。數(shù)據(jù)域:在正常響應(yīng)中,服務(wù)器可以返回數(shù)據(jù)域中數(shù)據(jù)或統(tǒng)計表(請求中要求的任何報文)。在異常響應(yīng)中,服務(wù)器返回數(shù)據(jù)域中的異常碼。這就定義了產(chǎn)生異常的服務(wù)器狀態(tài)。2.7本章小結(jié)本章介紹了Modbus協(xié)議內(nèi)容,兩種傳輸方式,功能碼及異常響應(yīng),使之更加深刻的理解Modbus通訊協(xié)議。第三章PLC軟件介紹及操作3.1項目的新建雙擊SIMATIC管理器圖標進入SIMATICManager(SIMATIC管理器),彈出新項目小窗口,單擊“Next”按鈕,選擇CPU模塊型號、需要生成的邏輯塊和輸入項目名稱。項目建立完成后,鼠標單擊SIMATIC管理器左側(cè)的項目名稱,選擇“插入新對象”選擇“SIMATICS7-300站”,既將此項目下插入一個S7-300站。圖3-1項目新建插入站點3.2硬件組態(tài)選中插入的站,SIMATIC管理器右側(cè)將出現(xiàn)“硬件”文件,雙擊或用鼠標右鍵選擇“打開對象”將打開“硬件組態(tài)編輯器”,如圖3。2所示。圖3-2硬件組態(tài)編輯器圖3。2左側(cè)為編輯區(qū),右側(cè)為“目錄”命令。進行硬件組態(tài)時的各種模塊既從左側(cè)目錄中選擇.如圖3.2所示,從左側(cè)目錄中選擇“CPU315—2DP”“CP340—RS232”3。3CP340參數(shù)設(shè)置雙擊CP340所在的槽位,會彈出如圖3-3所示的對話框,點擊左下角的“Parameter"按鍵,配置CP340.圖3-3CP340參數(shù)配置點擊“Parameter”后出現(xiàn)圖3-4,彈出CP340參數(shù)設(shè)定窗口,在“Protocol"處選擇“ASCII”。圖3-4CP340參數(shù)設(shè)定窗口雙擊圖3—4中“Protocol”處,彈出“Protocol”設(shè)置窗口,如圖3—5。在這里設(shè)置CP340通訊口波特率、數(shù)據(jù)格式、奇偶校驗方式.圖3—5“Protocol”設(shè)置窗口3.4編寫程序保存編譯后在SIMATIC管理器右側(cè)S7程序欄下會有一個“塊”文件夾,點擊會看到SIMATIC管理器左側(cè)里自動生成一個空的組織塊OB1,點擊打開OB1塊,會跳出程序編輯窗口,如圖3.3??蓮挠覀?cè)“程序元素"表中選擇相應(yīng)程序元素進行程序。圖3.3程序編輯器窗口第四章程序運行流程圖圖4—1ASCII模式下流程圖圖4—2字結(jié)接收處理過程流程圖流程圖說明:ASCll方式下,開啟端口接收,關(guān)閉發(fā)送.將接收緩沖區(qū)的有效字段進行LRC校驗,如果校驗無錯則將接收緩沖區(qū)中的數(shù)據(jù)進行分離,分離出地址碼、功能碼、數(shù)據(jù)段、數(shù)據(jù)字節(jié)長度信息,保存到固定的位置,以備分析和調(diào)用.將待發(fā)送偵的地址、功能碼、數(shù)據(jù)、數(shù)據(jù)長度信息先進行LRC運算,然后連同LRC運算結(jié)果放入到發(fā)送緩沖區(qū).ASCll模式下每兩個字節(jié)代表一個信息碼(即起始符、結(jié)束符、從設(shè)備地址、功能碼、數(shù)據(jù)、校驗),每接收到一個字符,必須判斷是信息碼的高四位還是低四位.偵結(jié)束處理中,如果所接收的字符是換行符,則將定時器關(guān)閉,接收狀態(tài)置為“空閑",然后向系統(tǒng)發(fā)送“偵接收完畢”消息;否則出錯,置接收狀態(tài)為“空閑",返回。處理接收部分的過程中,將接收到信息放到對應(yīng)的緩沖區(qū),其過程如圖4—2。第五章總結(jié)Modbus通信協(xié)議適用于中小型遠程監(jiān)控系統(tǒng),實現(xiàn)簡單實時性、有效性強,通過主機輪詢機制,保證每一個從設(shè)備的信息能夠及時的發(fā)送到主站進行分析處理。理論上講,一個主設(shè)備可以查詢247個從站。本文在研究了Modbus協(xié)議的規(guī)則基礎(chǔ)上,運用西門子PLC軟件,通過CP340模塊實現(xiàn)Modbus通訊協(xié)議的從站功能.工作主要體現(xiàn)在:1、分析課題的背景和意義。講述了Modbus協(xié)議的現(xiàn)狀和將來的發(fā)展趨勢.2、分析Modbus協(xié)議的通信規(guī)則.Modbus協(xié)議可采取RTU和ASCII兩種模式,兩種模式各有其優(yōu)缺點。前者實時性較后者前,吞吐率比后者高,適用于速度要求高的場合。而后者的出錯率比前者低,適用于對速到要求不高,通信有效性比較高的場合。本文是采用的是ASCII模式,重點介紹ASCII傳輸?shù)姆绞郊癓RC校驗3、介紹西門子STEP7軟件的操作。如何進行項目新建,站點的建立,硬件組態(tài)的設(shè)置以及CP340模塊參數(shù)的配置.4、給出了CP340模塊實現(xiàn)Modbus從站功能的程序流程圖。Modbus是一個開放的協(xié)議,本文只是簡單介紹了Modbus的其中一項功能。關(guān)于Modbus還有很多值得進一步發(fā)展和深化的地方。致謝經(jīng)過半年的忙碌和工作,本次畢業(yè)設(shè)計已經(jīng)接近尾聲,作為一個本科生的畢業(yè)設(shè)計,由于經(jīng)驗的匱乏,難免有許多考慮不周全的地方,如果沒有導師的督促指導,以及一起工作的同學們的支持,想要完成這個設(shè)計是難以想象的。在完成終稿的今天,在敲完最后一個句號的時刻,我由衷的感謝我的指導老師袁文華老師,感謝在畢業(yè)設(shè)計過程中幫助過我的同學舍友們,還要感謝多年來培育我,讓給我完成學業(yè)的父母。首先,我需要感謝我的指導老師,袁文華老師。我不是您最出色的學生,而您卻是我最尊敬的老師.您治學嚴謹,學識淵博,思想深邃,視野雄闊,為我營造了一種良好的精神氛圍。授人以魚不如授人以漁,置身其間,耳濡目染,潛移默化,使我不僅接受了全新的思想觀念,樹立了宏偉的學術(shù)目標,領(lǐng)會了基本的思考方式,從論文題目的選定到論文寫作的指導,經(jīng)由您悉心的點撥,再經(jīng)思考后的領(lǐng)悟,常常讓我有“山重水復(fù)疑無路,柳暗花明又一村”。其次,我感謝在完成畢業(yè)設(shè)計過程中幫助我的同學們。是你們在我為困難畏縮時激勵我,在我為難題煩惱時和我一起思考去解決問題。你們陪伴我一起走完這最后最重要的半年,這將是我們最美好的回憶。最后,我同樣要感謝我的父母,你們用辛勞助我完成學業(yè),你們用溫馨伴我長大成材,你們用嚴厲指導我正確的人生方向,你們用溫馨慰藉我人生路上傷痛與失意。這篇論文的最后一筆是我這四年大學的終點,卻也是我投入社會的起點。之后,我將用學校給我的知識,老師給我的教導,父母給我的依靠,同學朋友給我鼓勵,不斷努力,為社會國家做貢獻,我自己的理想未來奮斗.參考文獻安康學院學年論文﹙設(shè)計﹚題目基于MATLAB的數(shù)字通信系統(tǒng)仿真設(shè)計學生姓名學號專業(yè)班級指導教師2013年6月23日基于MATLAB的模擬通信系統(tǒng)仿真設(shè)計(作者:張小文)(安康學院電子與信息工程系電子信息工程專業(yè)10級,陜西安康725000)指導教師:朱燕【摘要】通信是通過某種媒體進行的信息傳遞,目的是傳輸信息,通信系統(tǒng)是用以完成信息傳輸過程的技術(shù)系統(tǒng)的總稱,作用是將信息從信源發(fā)送到一個或多個目的地.調(diào)制與解調(diào)在信息的傳輸過程中占據(jù)著重要的地位,是不可或缺的,因此研究系統(tǒng)的調(diào)制和解調(diào)過程就極為重要.MATLAB是集數(shù)值計算、圖形繪制、圖像處理及系統(tǒng)仿真等強大功能于一體的科學計算語言,它強大的矩陣運算和圖形可視化的功能以及豐富的工具箱,為通信系統(tǒng)的調(diào)制和解調(diào)過程的分析提供了極大的方便。本論文首先介紹了通信系統(tǒng)的概念,進而引出調(diào)制和解調(diào),然后介紹了我們常用的幾種調(diào)制和解調(diào)的方法。由于MATLAB具有的強大功能所以詳細介紹了MATLAB通信系統(tǒng)工具箱,并給出了基于MATLAB的通信系統(tǒng)的調(diào)制與解調(diào)的實現(xiàn),運用MATLAB仿真軟件進行仿真。【關(guān)鍵詞】通信系統(tǒng);調(diào)制與解調(diào);MATLAB;2FSK;2ASK;2PSK;2DPSKDigitalCommunicationSystemSimulationBasedOnMATLABAuthor:ZhangXiaowen(Grade10,Class2,ElectronicandInformationEngineering,DepartmentofelectronicsandInformationEngineering。,AnkangUniversity,Ankang725000,Shaanxi)Tutor:ZhuYanAbstract:Communicationisthroughamediafortransportat(yī)ion.Communicationsystemwhichisusedtocompletetheprocessofinformationtransmissionsystems,ingeneral,istosendtheinformationfromthesourcetooneormoredestinations.Modulationanddemodulationoccupiedanimportantpositioninthetransmissionofinformationwhichisessential,sotheresearchaboutthemodulationanddemodulationprocessinthecommunicat(yī)ionsystemisextremelyimportant.MATLABisanumericalcomputation,graphicsrendering,imageprocessingandsystemsimulationandotherpowerfulfeaturesinoneofthescientificcomputinglanguage,itisapowerfulmatrixcalculationandgraphicalvisualizat(yī)ionfeaturesandarichtoolboxprovidesagreatconvenienceforthecommunicationsystemofmodulationanddemodulationprocess.Thispaperintroducestheconceptofthecommunicationsystem,andthenleadstomodulationanddemodulation,andthenintroducedseveralofourcommonlyusedmethodofmodulationanddemodulation。AsthepowerofMATLABsowroducedthecommunicationsystemtoolboxintheMATLAB。WegivesseveralexamplesaboutthecommunicationsystembasedonMATLABmodulat(yī)ionanddemodulationandusethesoftwareofMATLABtosimulatethem.Keywords:Communicat(yī)ionSystems;Modulationanddemodulation;MATLAB;2FSK;2ASK;2PSK;2DPSK0引言通信按照傳統(tǒng)的理解就是信息的傳輸,在當今高度信息化得社會,信息和通信已經(jīng)成為現(xiàn)代社會的“命脈”。信息作為一種資源,只有通過廣泛的傳播與交流,才能產(chǎn)生利用價值,促進社會成員之間的合作,推動社會生產(chǎn)力的發(fā)展,創(chuàng)造出巨大的經(jīng)濟效益.而通信作為傳輸信息的手段或方式,與傳感技術(shù)、計算機技術(shù)相互融合,已經(jīng)成為21世紀國際社會和世界經(jīng)濟發(fā)展的強大推動力,所以未來的通信對人們的生活方式和社會的發(fā)展將會產(chǎn)生更加重大和意義深遠的影響。在信息傳輸過程中,要求天線的尺寸要和信號的波長相比擬,信號才能有效的被輻射。對于語音信號來說,相應(yīng)的天線尺寸要在幾十公里以上,實際上不可能實現(xiàn),所以需要經(jīng)過調(diào)制將信號頻譜搬移到較高的頻率范圍,如果不進行調(diào)制就把信號直接輻射出去,那么各電臺所發(fā)出信號的頻率就會相同。調(diào)制作用的實質(zhì)就是使相同頻率范圍的信號分別依托于不同頻率的載波上,接收機就可以分離出所需的頻率信號,不致互相干擾.有時信號過于復(fù)雜,人工計算其調(diào)制和解調(diào)過程較難實現(xiàn),對其結(jié)果的分析又缺乏可視化的直觀表現(xiàn),影響了所得結(jié)果在實際生活中的應(yīng)用,美國Mat(yī)hWorks公司開發(fā)的MATLAB解決了這一問題。它應(yīng)用于自動控制、數(shù)學計算、信號分析、信號處理等諸多領(lǐng)域,也是國內(nèi)高校和研究部門進行許多科學研究的重要工具.MATLAB的出現(xiàn)給通信系統(tǒng)的分析提供了極大的方便。1MATLAB簡介美國Mathworks公司于1967年推出了矩陣實驗室“MatrixLaboratory"(縮寫為Matlab)這就是Matlab最早的雛形。開發(fā)的最早的目的是幫助學校的老師和學生更好的授課和學習。Matlab是一種解釋性執(zhí)行語言,具有強大的計算、仿真、繪圖等功能。Simulink是MATLAB中的一種可視化仿真工具,也是目前在動態(tài)系統(tǒng)的建模和仿真等方面應(yīng)用最廣泛的工具之一。確切的說,Simulink是一個用來對動態(tài)系統(tǒng)進行建模、仿真和分析的軟件包,它支持線性和非線性系統(tǒng),連續(xù)、離散時間模型,或者是兩者的混合。系統(tǒng)還可以使多種采樣頻率的系統(tǒng),而且系統(tǒng)可以是多進程的。在Simulink環(huán)境中,它為用戶提供了方框圖進行建模的圖形接口,采用這種結(jié)構(gòu)畫模型圖就如同用手在紙上畫模型一樣自如、方便,故用戶只需進行簡單的點擊和拖動就能完成建模,并可直接進行系統(tǒng)的仿真,快速的得到仿真結(jié)果。但是Simulink不能脫離MATLAB而獨立工作。Matlab將高性能的數(shù)值計算和可視化集成在一起,并提供了大量的內(nèi)置函數(shù),從而被廣泛地應(yīng)用于科學計算、控制系統(tǒng)、信息處理等領(lǐng)域的分析、仿真和設(shè)計工作,而且利用Matlab產(chǎn)品的開放式結(jié)構(gòu),可以非常容易地對Matlab的功能進行擴充,從而在不斷深化對問題認識的同時,不斷完善Matlab產(chǎn)品以提高產(chǎn)品自身的競爭能力。利用M語言還開發(fā)了相應(yīng)的Matlab專業(yè)工具箱函數(shù)供用戶直接使用。這些工具箱應(yīng)用的算法是開放的可擴展的,用戶不僅可以查看其中的算法,還可以針對一些算法進行修改,甚至允許開發(fā)自己的算法擴充工具箱的功能。目前Matlab產(chǎn)品的工具箱有四十多個,分別涵蓋了數(shù)據(jù)獲取、科學計算、控制系統(tǒng)設(shè)計與分析、數(shù)字信號處理、數(shù)字圖像處理、金融財務(wù)分析以及生物遺傳工程等專業(yè)領(lǐng)域。2二進制數(shù)字調(diào)制系統(tǒng)的原理及實現(xiàn)數(shù)字通信系統(tǒng),按調(diào)制方式可以分為基帶傳輸和帶通傳輸。數(shù)字基帶信號的功率一般處于從零開始到某一頻率(如0~6M)低頻段,因而在很多實際的通信(如無線信道)中就不能直接進行傳輸,需要借助載波調(diào)制進行頻譜搬移,將數(shù)字基帶信號變換成適合信道傳輸?shù)臄?shù)字頻帶信號進行傳輸,這種傳輸方式,稱為數(shù)字信號的頻帶傳輸或調(diào)制傳輸、載波傳輸。所謂調(diào)制,是用基帶信號對載波波形的某參量進行控制,使該參量隨基帶信號的規(guī)律變化從而攜帶消息。對數(shù)字信號進行調(diào)制可以便于信號的傳輸;實現(xiàn)信道復(fù)用;改變信號占據(jù)的帶寬;改善系統(tǒng)的性能.數(shù)字基帶通信系統(tǒng)中四種基本的調(diào)制方式分別稱為振幅鍵控(ASK,Amplitude-Shiftkeying)、移頻鍵控(FSK,Frequency-Shiftkeying)、移相鍵控(PSK,Phase-Shiftkeying)和差分移相鍵(DPSK,DifferentPhase-Shiftkeying)。本次課程設(shè)計對這四種調(diào)制方式進行了仿真。2。1二進制振幅鍵控采用的流程圖如圖2-1所示:圖2—12ASK調(diào)制解調(diào)框圖2.1。1ASK調(diào)制原理2ASK二進制振幅調(diào)制就是用二進制數(shù)字基帶信號控制正弦載波的幅度,使載波振幅隨著二進制數(shù)字基帶信號而變化,而其頻率和初始相位保持不變.信息比特是通過載波的幅度來傳遞的。其信號表達式為:,S(t)為單極性數(shù)字基帶信號。由于調(diào)制信號只有0或1兩個電平,相乘的結(jié)果相當于將載頻或者關(guān)斷,或者接通,它的實際意義是當調(diào)制的數(shù)字信號“1”時,傳輸載波;當調(diào)制的數(shù)字信號為“0"時,不傳輸載波。2ASK信號的時間波形e2ASK(t)隨二進制基帶信號S(t)通斷變化。所以又被稱為通斷鍵控信號。典型波形如圖2-2所示。圖2—2典型2ASK波形e2ASK(t)為已調(diào)信號,它的幅度受s(t)控制,也就是說它的幅度上攜帶有s(t)的信息。2ASK信號的產(chǎn)生方法通常有兩種:模擬調(diào)制法(相乘器法)和鍵控法。模擬調(diào)制法就是用基帶信號與載波相乘,進而把基帶信號調(diào)制到載波上進行傳輸。鍵控法由s(t)來控制電路的開關(guān)進而進行調(diào)制。兩種方法的調(diào)制如圖2-3和圖2—4所示。圖2-3模擬調(diào)制法(相乘器法)圖2—4鍵控法2.1。2ASK解調(diào)原理2ASK有兩種基本解調(diào)方法:相干解調(diào)法(同步檢測法)和非相干解調(diào)法(包絡(luò)檢波法).相干解調(diào)需要將載頻位置的已調(diào)信號頻譜重新搬回原始基帶位置,因此用相乘器與載波相乘來實現(xiàn)。相乘后的信號只要濾除高頻部分就可以了。為確保無失真還原信號,必須在接收端提供一個與調(diào)制載波嚴格同步的本地載波,這是整個解調(diào)過程能否順利完好進行的關(guān)鍵。本次設(shè)計采用相干解調(diào)法.兩種解調(diào)原理圖如圖2—5和圖2—6所示。圖2-5相干解調(diào)法(同步檢測法)圖2—6非相干解調(diào)法(包絡(luò)檢波法)2。1.3仿真結(jié)果及分析通過編寫M文件程序(見附錄),產(chǎn)生隨機信號,按圖2—1順序?qū)γ恳荒K編程后。程序中注有需注意語句及解釋.運行程序,實現(xiàn)2ASK的調(diào)制與解調(diào)過程.本次設(shè)計采用模擬調(diào)制法(相乘器法)和相干解調(diào)法.仿真后調(diào)制過程及解調(diào)過程的圖形分別如圖2—7和圖2-8所示。圖2-72ASK調(diào)制過程仿真圖圖2—82ASK解調(diào)過程仿真圖由圖可以看出,產(chǎn)生的數(shù)字隨機信號為“0100100001",經(jīng)載波調(diào)制后信號為“1”的時間內(nèi)有正弦波形,信號為“0”的時間內(nèi)無波形。經(jīng)過加隨機噪聲,相干解調(diào)后,恢復(fù)出原始信號,與基帶信號一致,因此達到本次設(shè)計目的。2。2二進制移頻鍵控所用流程圖如圖2-9所示:圖2-92FSK調(diào)制解調(diào)框圖2.2.1FSK調(diào)制原理一個FSK信號可以看成是兩個不同載波的2ASK信號的疊加。其解調(diào)和解調(diào)方法和FSK差不多。2FSK信號的頻譜可以看成是f1和f2的兩個2ASK頻譜的組合.頻移鍵控是利用載波的頻率來傳遞數(shù)字信號,在2FSK中,載波的頻率隨著二進制基帶信號在f1和f2兩個頻率點間變化,頻移鍵控是利用載波的頻移變化來傳遞數(shù)字信息的.在2FSK中,載波的頻率隨基帶信號在f1和f2兩個頻率點間變化。故其表達式為:典型波形如圖2-10所示:圖2—102FSK典型波形圖2FSK的調(diào)制方式有兩種,即模擬調(diào)頻法和鍵控法.本次設(shè)計采用鍵控法.鍵控法中可以用二進制“1”來對應(yīng)于載頻f1,而“0”用來對應(yīng)于另一頻率f2,而這個可以用受矩形脈沖序列控制的開關(guān)電路對兩個不同的獨立的頻率源f1、f2進行選擇通。鍵控法原理圖如圖2-11示圖2—112FSK鍵控法原理圖2.2。2FSK解調(diào)原理2FSK的解調(diào)方式有兩種:相干解調(diào)方式和非相干解調(diào)方式。非相干解調(diào)是經(jīng)過調(diào)制后的2FSK數(shù)字信號通過兩個頻率不同的帶通濾波器f1、f2濾出不需要的信號,然后再將這兩種經(jīng)過濾波的信號分別通過包絡(luò)檢波器檢波,最后將兩種信號同時輸入到抽樣判決器同時外加抽樣脈沖,最后解調(diào)出來的信號就是調(diào)制前的輸入信號.其原理圖如圖2-12所示。圖2-122FSK非相干解調(diào)原理圖相干解調(diào)是根據(jù)已調(diào)信號由兩個載波f1、f2調(diào)制而成,則先用兩個分別對f1、f2帶通的濾波器對已調(diào)信號進行濾波,然后再分別將濾波后的信號與相應(yīng)的載波f1、f2相乘進行相干解調(diào),再分別低通濾波、用抽樣信號進行抽樣判決器即可.原理圖如圖3-14所示。圖2-132FSK相干解調(diào)原理圖2。2。3仿真結(jié)果及分析通過編寫M文件程序(見附錄),產(chǎn)生隨機信號,按流程圖2.2.1順序?qū)γ恳荒K編程后。程序中注有需注意語句及解釋。運行程序,實現(xiàn)2FSK的調(diào)制與解調(diào)過程。本次設(shè)計中采用鍵控法調(diào)制法和相干解調(diào)法。仿真后調(diào)制過程及解調(diào)過程的圖形分別如圖2-14、圖2—15和圖2—16所示.由圖可以看出,產(chǎn)生的隨機信號為“1011001001",經(jīng)過反相產(chǎn)生反碼,并分別與兩個載波相乘,經(jīng)過加入隨機噪聲后波形如圖2—15所示。在解調(diào)時,分別與對應(yīng)的載波相乘。解調(diào)出基帶信號,可以看出實現(xiàn)了本次設(shè)計目的。圖2—142FSK鍵控法調(diào)制過程仿真圖圖2-152FSK鍵控法調(diào)制過程仿真圖圖2—162FSK相干解調(diào)過程仿真圖2.3二進制相移鍵控所用流程圖如圖2-17所示:圖2-172PSK調(diào)制解調(diào)框圖2。3.1PSK調(diào)制原理在二進制數(shù)字調(diào)制中,當正弦載波的相位隨二進制數(shù)字基帶信號離散變化時,則產(chǎn)生二進制移相鍵控(2PSK)信號.2PSK信號調(diào)制有兩種方法,即模擬調(diào)制法和鍵控法。通常用已調(diào)信號載波的0°和180°分別表示二進制數(shù)字基帶信號的1和0,模擬調(diào)制法用兩個反相的載波信號進行調(diào)制。2PSK以載波的相位變化作為參考基準的,當基帶信號為0時相位相對于初始相位為0°,當基帶信號為1時相對于初始相位為180°。鍵控法,是用載波的相位來攜帶二進制信息的調(diào)制方式.通常用0°和180°來分別代表0和1.其時域表達式為:其中,2PSK的調(diào)制中an必須為雙極性碼。本次設(shè)計中采用模擬調(diào)制法。兩種方法原理圖分別如圖2-18和圖2-19所示。圖2—18模擬調(diào)制法原理圖圖2-19鍵控法原理圖2.3.2PSK解調(diào)原理由于2PSK的幅度是恒定的,必須進行相干解調(diào).經(jīng)過帶通濾波的信號在相乘器中與本地載波相乘,然后用低通濾波器濾除高頻分量,在進行抽樣判決。判決器是按極性來判決的.即正抽樣值判為1,負抽樣值判為0.2PSK信號的相干解調(diào)原理圖如圖2—20所示,各點的波形如圖2—21所示。由于2PSK信號的載波回復(fù)過程中存在著180°的相位模糊,即恢復(fù)的本地載波與所需相干載波可能相同,也可能相反,這種相位關(guān)系的不確定性將會造成解調(diào)出的數(shù)字基帶信號與發(fā)送的基帶信號正好相反,即“1”變成“0”嗎“0"變成“1",判決器輸出數(shù)字信號全部出錯。這種現(xiàn)象稱為2PSK方式的“倒π”現(xiàn)象或“反相工作”.但在本次仿真中是直接給其同頻同相的載波信號,所以不存在此問題。圖2-202PSK的相干解調(diào)原理圖圖2-21相干解調(diào)中各點波形圖2.3.3仿真結(jié)果及分析通過編寫M文件程序(見附錄),產(chǎn)生隨機信號,按流程圖2-17所示順序?qū)γ恳荒K編程后.程序中注有需注意語句及解釋。運行程序,實現(xiàn)2PSK的調(diào)制與解調(diào)過程。本次設(shè)計采用模擬調(diào)制法和相干解調(diào)法。仿真后調(diào)制過程及解調(diào)過程的圖形分別如圖2—22和圖2—23示.圖2—222PSK模擬調(diào)制方法過程仿真圖圖2—232PSK相干解調(diào)過程仿真圖由圖可以看出,產(chǎn)生的隨機信號為“0011001100”,經(jīng)過反相產(chǎn)生反碼,并將原碼跟反碼一起合成雙極性碼,與載波相乘后加入隨機噪聲。在解調(diào)時,與對應(yīng)的載波相乘經(jīng)過低通濾波、抽樣判決后,解調(diào)出基帶信號與原基帶信號一致,可以看出實現(xiàn)了本次設(shè)計目的。2.4二進制差分相移鍵控所用流程圖如圖2—24所示:圖2-242DPSK調(diào)制解調(diào)框圖2。4.1DPSK調(diào)制原理二進制差分相移鍵控。2DPSK方式是用前后相鄰碼元的載波相對相位變化來表示數(shù)字信息。假設(shè)前后相鄰碼元的載波相位差為,可定義一種數(shù)字信息與之間的關(guān)系為:為前一碼元的相位。實現(xiàn)二進制差分相移鍵控的最常用的方法是:先對二進制數(shù)字基帶信號進行差分編碼,然后對變換出的差分碼進行絕對調(diào)相即可。2DPSK調(diào)制原理圖如圖2—25所示。圖2—252DPSK調(diào)制原理框圖2。4。2DPSK解調(diào)原理2DPSK信號解調(diào)有相干解調(diào)方式和差分相干解調(diào)。用差分相干解調(diào)這種方法解調(diào)時不需要恢復(fù)本地載波,只要將DPSK信號精確地延遲一個碼元時間間隔,然后與DPSK信號相乘,相乘的結(jié)果就反映了前后碼元的相對相位關(guān)系,經(jīng)低通濾波后直接抽樣判決即可恢復(fù)出原始的數(shù)字信息,而不需要在進行差分解碼。相干解調(diào)碼變換法及相干解調(diào)法的解調(diào)原理是,先對2DPSK信號進行相干解調(diào),恢復(fù)出相對碼,再通過碼反變換器變換為絕對碼,從而恢復(fù)出發(fā)送的二進制數(shù)字信息。在解調(diào)過程中,若相干載波產(chǎn)生相位模糊,解調(diào)出的相對碼將產(chǎn)生倒置現(xiàn)象,但是經(jīng)過碼反變換器后,輸出

溫馨提示

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

評論

0/150

提交評論