freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于modbus協(xié)議的通訊系統(tǒng)-文庫(kù)吧資料

2025-05-29 18:22本頁(yè)面
  

【正文】 rial Challenges and Technologies”.Phil Sutterlin and Walter Downey Echelon Corporation [15]Modbus通信編程.://member.netease./Maoyang/ [16]ModbusPlus Planning and Installation.://.modicon./teehpubs/toc6.html致謝本設(shè)計(jì)從開題到方案的設(shè)計(jì)、具體電路試驗(yàn)及論文寫作的實(shí)施始終是在老師們的精心指導(dǎo)和周密安排下進(jìn)行的。⑵因?yàn)闆]有編程上位機(jī)軟件,只是通過串口調(diào)試軟件來觀察數(shù)據(jù)的,如此的話,通過協(xié)議讀取的數(shù)據(jù)信號(hào)不能實(shí)時(shí)性的顯示于上位機(jī)上,而且操作非常麻煩,用戶界面很不友好,還有待繼續(xù)完善。⑶設(shè)計(jì)了一個(gè)基于Modus通訊協(xié)議的單片機(jī)通信系統(tǒng)。⑵較詳細(xì)地分析了Modus協(xié)議的基本內(nèi)容和工作原理,在實(shí)現(xiàn)Modbus通信協(xié)議的基礎(chǔ)上為了預(yù)防干擾,提高系統(tǒng)穩(wěn)定性,防止系統(tǒng)程序跑飛而造成不可預(yù)測(cè)的錯(cuò)誤等,在軟件方面做出了一些優(yōu)化系統(tǒng)設(shè)計(jì)。本次設(shè)計(jì)功能基本實(shí)現(xiàn):A機(jī)通過無線模塊控制B機(jī)實(shí)現(xiàn)溫度或者時(shí)鐘顯示實(shí)現(xiàn)短距離無線通訊,B機(jī)還做為從機(jī)通過Modbus與PC機(jī)通訊,將從A機(jī)無線獲得的時(shí)鐘信號(hào)和溫度信號(hào)傳輸給上位機(jī)顯示實(shí)現(xiàn)長(zhǎng)距離有線通訊?!姹硎?小時(shí)表示8小時(shí)表示48分鐘圖63 PC機(jī)顯示我們發(fā)送:[01][03][01][00][01][00][25][C0] 注釋:讀從機(jī)溫度[01][03][02][00][01][00][DD][AA] 注釋:讀從機(jī)時(shí)鐘的小時(shí) [01][03][03][00][01][00][8C][CA] 注釋:讀從機(jī)時(shí)鐘的分鐘串口接收:[01][03][02][00][AC][25][C0] 注釋:溫度值回應(yīng)給主機(jī)(℃)[01][03][02][00][0B][DD][AA] 注釋:小時(shí)值回應(yīng)給主機(jī)(8小時(shí)) [01][03][02][00][24][8C][CA] 注釋:分鐘值回應(yīng)給主機(jī)(48分鐘)03對(duì)應(yīng)讀度模擬寄存器功能;[D5]、[08]、[30]就是分別發(fā)送三次命令后讀出的模擬量;℃;8代表8小時(shí);48代表48分鐘。RS232485模塊有:MAX232芯片、MAX485芯片、USB轉(zhuǎn)串口線。A、 B機(jī)顯示如圖61所示:溫度顯示溫度顯示萬(wàn)年歷小時(shí)、分鐘顯示圖61 A、B機(jī)顯示Rs232485A機(jī)B機(jī)18B20溫度感器52單片機(jī)24l01無線模塊A機(jī)5v電池盒1620液晶顯示MAX485芯片MAX232芯片按鍵模塊24l01無線模塊數(shù)碼管顯示串口線B機(jī)5v電池盒圖62 實(shí)物外觀A機(jī)主要有:1602液晶顯示模塊、52單片機(jī)、按鍵模塊、NRF24L01無線模塊、5v電源。第6章 通訊系統(tǒng)的實(shí)現(xiàn)本章節(jié)主要說明本課題設(shè)計(jì)的作品,對(duì)整體作品的實(shí)物及各部分功能模塊實(shí)物作了全面的介紹,并對(duì)本課題設(shè)計(jì)的作品結(jié)果作了全面的分析與評(píng)價(jià)。程序流程圖如55所示:讀取一次溫度信息主程序開始無線模塊初始化Timer0中斷開始Timer0、1mTimer串口初始化(設(shè)置波特率等);無線模塊設(shè)置為接收數(shù)碼管掃描時(shí)鐘更新中斷返回判斷中斷標(biāo)志rcv為1?無線接收中斷開始讀取接收到的數(shù)據(jù)判斷接收到的命令置位rcvNY顯示時(shí)鐘并與A機(jī)同步顯示溫度發(fā)回溫度信息LED閃爍檢查uart0口數(shù)據(jù)結(jié)束結(jié)束結(jié)束定時(shí)處理圖55 B機(jī)流程圖 本章小結(jié) 在這一章中我們介紹了基于MODBUS協(xié)議處理報(bào)文的軟件設(shè)計(jì),介紹了報(bào)文格式、軟件具體實(shí)現(xiàn)的方法和注意事項(xiàng),并設(shè)計(jì)的介紹了流程圖,設(shè)計(jì)中對(duì)系統(tǒng)穩(wěn)定性方面下了功夫。所以程序中需要初始化無線模塊、串口、定時(shí)器等;Modbus協(xié)議都在主程序中得以體現(xiàn)。 流程圖如53所示:檢查Uart0數(shù)據(jù)開始設(shè)備地址、偶校正確否?CRC校驗(yàn)正確?接受地址偏移寄存器清零偶校驗(yàn)清零結(jié)束功能碼為03否?NNN:結(jié)束或看是否為其它功能YYY讀取保存寄存器開始讀取接收的邏輯地址讀取地址長(zhǎng)度對(duì)接收緩沖區(qū)做CRC校驗(yàn)對(duì)應(yīng)邏輯地址處理數(shù)據(jù),需要將溫度、時(shí)鐘的時(shí)、分等數(shù)據(jù)對(duì)應(yīng)給發(fā)送緩沖區(qū)將設(shè)備地址、命令號(hào)、返回字節(jié)數(shù)對(duì)應(yīng)給發(fā)送緩沖區(qū)對(duì)緩沖區(qū)數(shù)據(jù)進(jìn)行CRC計(jì)算開始發(fā)送緩沖區(qū)第一個(gè)數(shù)據(jù)圖53 數(shù)據(jù)包處理 A機(jī)流程圖和說明 A機(jī)的功能是顯示時(shí)鐘,能通過按鍵控制B機(jī)顯示溫度或把A機(jī)的時(shí)鐘信號(hào)無線傳輸給B機(jī);所以在程序中需要初始化液晶、無線模塊、定時(shí)器、還要設(shè)置按鍵掃描和無線接受中斷(這里用單片機(jī)外部中斷0來實(shí)現(xiàn))。通過邏輯地址我們可以知道要處理的數(shù)據(jù),通過邏輯地址長(zhǎng)度我們可以知道需要返回的字節(jié)數(shù)。采用查詢掃描方式,當(dāng)從機(jī)接受數(shù)據(jù)包第一個(gè)有效數(shù)據(jù)為0X01時(shí)說明確實(shí)是該機(jī),如果偶校驗(yàn)也正確的話則繼續(xù)處理接下來的數(shù)據(jù);為保證通訊數(shù)據(jù)的可靠和可信性我們還需要對(duì)接收緩沖區(qū)做CRC校驗(yàn)。發(fā)送接收緩沖區(qū)再與單片機(jī)的串口鎖存器sbuf進(jìn)行交換來實(shí)現(xiàn)數(shù)據(jù)包的發(fā)送與接收,在程序中還同時(shí)使用偶校驗(yàn)來對(duì)傳輸數(shù)據(jù)進(jìn)行檢測(cè);在此設(shè)置串口中斷服務(wù)程序,當(dāng)接收或者發(fā)送完8個(gè)數(shù)據(jù)后進(jìn)入服務(wù)程序內(nèi)處理以上功能。在此次程序設(shè)計(jì)中設(shè)置了一個(gè)1ms定時(shí)中斷,在中斷程序中定義一個(gè)1ms標(biāo)志位,在定時(shí)處理子函數(shù)中判斷是否通訊超時(shí)(本次設(shè)定為5s),如果超時(shí),即使已經(jīng)有接受到數(shù)據(jù)也置之不理,進(jìn)行重置48清零地址偏移器、清零偶校驗(yàn);除此之外每次發(fā)送數(shù)據(jù)結(jié)束后我們也需要進(jìn)行這樣處理。設(shè)計(jì)中只返回了[數(shù)據(jù)1][數(shù)據(jù)2],本次設(shè)計(jì)中若第一個(gè)返回的值是[AC]176。設(shè)計(jì)中返回了1個(gè)模擬量的數(shù)據(jù),因?yàn)橐粋€(gè)模擬量需要2個(gè)字節(jié)所以共2個(gè)字節(jié)。⑵從機(jī)響應(yīng)回主機(jī)的數(shù)據(jù)包:[設(shè)備地址] [命令號(hào)03] [返回的字節(jié)個(gè)數(shù)][數(shù)據(jù)1][數(shù)據(jù)2]...[數(shù)據(jù)n][CRC校驗(yàn)的低8位] [CRC校驗(yàn)的高8位] 即 :[01][03][02][00][AC][CRC低][CRC高] 注釋:溫度值回應(yīng)給主機(jī)(℃)[01][03][02][00][0B][CRC低][CRC高] 注釋:小時(shí)值回應(yīng)給主機(jī)(11小時(shí)) [01][03][02][00][24][CRC低][CRC高] 注釋:分鐘值回應(yīng)給主機(jī)(36分鐘)具體意義如下:。(在返回的信息中一個(gè)模擬量需要返回兩個(gè)字節(jié))。、高8位:表示從起始地址開始讀多少個(gè)模擬量(即邏輯地址長(zhǎng)度)。、高8位:表示想讀取的模擬量的邏輯地址,本次設(shè)計(jì)中的溫度邏輯地址為0x01;小時(shí)的邏輯地址為0x02。⑴計(jì)算機(jī)發(fā)送的數(shù)據(jù)包:[設(shè)備地址] [命令號(hào)03] [起始寄存器地址低8位] [高8位] [讀取的寄存器數(shù)低8位] [高8位] [CRC校驗(yàn)的低8位] [CRC校驗(yàn)的高8位] 即:[01][03][01][00][01][00][CRC低][CRC高] 注釋:讀從機(jī)溫度[01][03][02][00][01][00][CRC低][CRC高] 注釋:讀從機(jī)時(shí)鐘的小時(shí) [01][03][03][00][01][00][CRC低][CRC高] 注釋:讀從機(jī)時(shí)鐘的分鐘具體意義如下::本次設(shè)計(jì)中設(shè)備地址為0x01。本章主要介紹報(bào)文處理的軟件實(shí)現(xiàn),并簡(jiǎn)要介紹整體A機(jī)時(shí)鐘和B機(jī)溫度信號(hào)無線交換的軟件流程圖。 圖46 RS232485 本章小結(jié) 本章主要包括電源模塊、單片機(jī)最小系統(tǒng)模塊、按鍵、溫度采集、數(shù)碼管和液晶顯示模塊、RS232轉(zhuǎn)RS485接口模塊、NRF24L01無線通訊模塊的硬件設(shè)計(jì),介紹了設(shè)計(jì)的基本原理和一些注意事項(xiàng)。平時(shí)MAX232的9腳輸出高電平,經(jīng)Q1倒相后,使MAX485的RE和DE為低電平而處于數(shù)據(jù)接收狀態(tài)。在半雙工使用中,通??梢詫⑦@兩個(gè)腳直接相連,然后由PC或者單片機(jī)輸出的高低電平就可以讓MAX485在接收和發(fā)送狀態(tài)之間轉(zhuǎn)換了。MAX485是通過兩個(gè)引腳RE(2腳)和DE(3腳)來控制數(shù)據(jù)的輸入和輸出。使用本電路需注意PC程序必須使串口的DTR和RTS輸出高電平,經(jīng)過D3穩(wěn)壓后得到VCC,經(jīng)過實(shí)際測(cè)試。PC串口每根線可以提供大約9mA的電流,因此兩根線提供的電流足夠供給這個(gè)電路使用了。本電路的232電平轉(zhuǎn)換電路采用MAX232集成電路,485電路采用了MAX485集成電路。如圖45所示,在設(shè)計(jì)NRF24L01無線通訊模塊中要注意的是該芯片低工作電壓在(~),而普通5v電壓會(huì)降低芯片壽命甚至將其燒壞,所以需要對(duì)其電平轉(zhuǎn)換,該芯片輸出電壓穩(wěn)定在NRF24L01的工作電壓范圍內(nèi)、輸出電流800mA滿足無線通訊芯片供應(yīng)電源。⑶獨(dú)立按鍵單元如圖44,獨(dú)立按鍵用來對(duì)系統(tǒng)工作控制,例如調(diào)時(shí)間,發(fā)命令等作用。圖41 最小系統(tǒng)、獨(dú)立按鍵、液晶和數(shù)碼管顯示模塊⑴液晶顯示模塊如圖42所示,采用字符型液晶1602,其具有操作簡(jiǎn)單顯示字符多特點(diǎn),并接R0(104)進(jìn)行對(duì)比度調(diào)節(jié),P0為數(shù)據(jù)接口。 本章小結(jié) 本章介紹了modbus通訊協(xié)議、RS485接口、NRF24L01通訊模塊的具體內(nèi)容,為硬件、軟件設(shè)計(jì)鋪平道路。通過設(shè)置可屏蔽中斷位為高,則中斷響應(yīng)被禁止。當(dāng) MCU 給中斷源寫‘1’時(shí),中斷引腳被禁止。在CSN 狀態(tài)由高變低后可以通過MISO 來讀取狀態(tài)寄存器的內(nèi)容。在所有多字節(jié)寄存器被寫完之前可以結(jié)束寫 SPI 操作,在這種情況下沒有寫完的高字節(jié)保持原有內(nèi)容不變。 R_REGISTER 和W_REGISTER 寄存器可能操作單字節(jié)或多字節(jié)寄存器。 NOP1111 1111空操作。當(dāng)CE 為高過程中,數(shù)據(jù)包被不斷的重新發(fā)射。也就是說,若傳輸應(yīng)答信號(hào)過程中執(zhí)行此指令的話將使得應(yīng)答信號(hào)不能被完整的傳輸。應(yīng)用于發(fā)射模式下FLUSH_TX1110 0001清除TX FIFO 寄存器,應(yīng)用于發(fā)射模式下。W_RX_PAYLOAD1010 0000寫TX 有效數(shù)據(jù):132 字節(jié)。當(dāng)讀RX有效數(shù)據(jù)完成后,F(xiàn)IFO 寄存器中有效數(shù)據(jù)被清除。R_RX_PAYLOAD0110 0001讀RX 有效數(shù)據(jù):132 字節(jié)。AAAAA 指出讀操作的寄存器地址W_REGISTER001A AAAA寫配置寄存器。每一條指令的執(zhí)行都必須通過一次CSN 由高到低的變化。 SPI 指令設(shè)置:SPI 接口可能用到的指令在下面有所說明。SPI 接口:SPI 接口是標(biāo)準(zhǔn)的 SPI 接口,其最大的數(shù)據(jù)傳輸率為 10Mbps。該模式支持兩個(gè)不同工作頻道的信號(hào)同時(shí)接收。⑺ 接收靈敏度—93dBm。⑶ 信號(hào)的調(diào)制方式為頻移鍵控(FSK)⑷ 最大數(shù)據(jù)傳輸速率1Mbps ⑸ 最大輸出功率0dB⑹ 獨(dú)特的Shock Burst TM射頻信號(hào)發(fā)射模式。通過編程,nRF2401芯片的射頻工作頻率和輸出信號(hào)的功率等參量可以非常方便地調(diào)節(jié)。因?yàn)镽S485 是一個(gè)差分接口,所以傳輸數(shù)據(jù)時(shí)完全可以抑制來自發(fā)送線的干擾。它允許在一條數(shù)據(jù)線 上連接32 個(gè)發(fā)送器和接收器,非常適合于多分支應(yīng)用。 ⑺ 最終 CRC寄存器的值就是 CRC 的值。 ⑸ 重復(fù)第3步和第 4 步直到 8 次移位,這樣處理完了一個(gè)完整的八位。 ⑶ 將 CRC 寄存器向右移一位,最高位填以 0,最低位移出并檢測(cè)。 生成一個(gè) CRC 值的流程為: ⑴ 預(yù)置一個(gè)16 位寄存器為 0FFFFH(全 1),稱之為 CRC 寄存器。在生成 CRC值時(shí),每個(gè) 8位字節(jié)與寄存器中的內(nèi)容進(jìn)行異或,然后將結(jié)果向低位移位,高位則用“0”補(bǔ)充,最低位(LSB)移出并檢測(cè),如果是 1,該寄存器就與一個(gè)預(yù)設(shè)的固定值進(jìn)行一次異或運(yùn)算,如果最低位為 0,不作任何處理。CRC 值由傳送設(shè)備計(jì)算出來, 然后附加到數(shù)據(jù)幀上,接收設(shè)備在接收數(shù)據(jù)時(shí)重新計(jì)算 CRC值,然后與接收到的 CRC域中的值進(jìn)行比較,如果這兩個(gè)值不相等,就發(fā)生了錯(cuò)誤。有時(shí),由于電噪聲和其它干擾,一組數(shù)據(jù)在從一個(gè)設(shè) 備傳輸?shù)搅硪粋€(gè)設(shè)備時(shí)在線路上可能會(huì)發(fā)生一些改變,出錯(cuò)校驗(yàn)?zāi)軌虮WC主機(jī)或者終端不去響應(yīng)那些傳 輸過程中發(fā)生了改變的數(shù)據(jù),這就提高了系統(tǒng)的安全性和效率,出錯(cuò)校驗(yàn)使用了 16 位循環(huán)冗余的方法。例如:功能域碼告訴終端讀取一個(gè)寄存器,數(shù)據(jù)域則需要指明從哪 個(gè)寄存器開始讀及讀取多少個(gè)數(shù)據(jù),內(nèi)嵌的地址和數(shù)據(jù)依照類型和從機(jī)之間的不同能力而有所不同。如果某項(xiàng)事務(wù)處理完成,記錄會(huì)給出有關(guān)錯(cuò)誤13編程(184/384 484 584)可使主機(jī)模擬編程器功能修改PC從機(jī)邏輯14探詢(184/384 484 584)可使主機(jī)與正在執(zhí)行任務(wù)的從機(jī)通信,定期控詢?cè)搹臋C(jī)是否已完成其程序操作,僅在含有功能13的報(bào)文發(fā)送后,本功能碼才得發(fā)送15強(qiáng)置多線圈強(qiáng)置一串連續(xù)邏輯線圈的通斷 數(shù)據(jù)域包含了終端執(zhí)行特定功能所需要的數(shù)據(jù)或者終端響應(yīng)查詢時(shí)采集到的數(shù)據(jù)。下表列出了所有本協(xié)議比較常用到的功能碼、它們的意義及它們的初始功能。在本次設(shè)計(jì)中我們采用RS232轉(zhuǎn)485這個(gè)接口實(shí)現(xiàn)通訊,而因?yàn)镽S485芯片的驅(qū)動(dòng)能力有限,在實(shí)際應(yīng)用中其實(shí)只能驅(qū)動(dòng)40多個(gè)從機(jī)而已。每個(gè)終端設(shè)備的地址必須是唯一的,僅僅被尋址到的終端會(huì)響應(yīng), 響應(yīng)包含了該地址的查詢應(yīng)答。終端從機(jī)能對(duì)來自主機(jī)的錯(cuò)誤通訊進(jìn)行識(shí)別,并做出不同的錯(cuò)誤響應(yīng)。然后,它將自己生成的數(shù)據(jù)加入到取得的“信封”中,把數(shù)據(jù)幀返回給發(fā)送者。當(dāng)數(shù)據(jù)幀到達(dá)終端設(shè)備時(shí),它通過一個(gè)簡(jiǎn)單的“端口”進(jìn)入尋址到的設(shè)備,該設(shè)備去掉數(shù)據(jù)幀的“信 封”(數(shù)據(jù)頭),讀取數(shù)據(jù)。 ⑵數(shù)據(jù)幀格式:一個(gè)數(shù)據(jù)幀格式包括:1位起始位,8位數(shù)據(jù)位,偶校驗(yàn)位, 1位
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1