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

正文內(nèi)容

基于modbus協(xié)議的通訊系統(tǒng)-在線瀏覽

2025-07-10 18:22本頁(yè)面
  

【正文】 兼容,可方便與TTL⑵⑶⑷3000米,另外RS232C接口在總線上只允許連接1個(gè)收發(fā)器,而RS485接口在總線上是允許連接多達(dá)128個(gè)收發(fā)器(RS485芯片的驅(qū)動(dòng)能力有限,因而在實(shí)際應(yīng)用中其實(shí)只能驅(qū)動(dòng)40多個(gè)收發(fā)器)。因RS485接口具有良好的抗噪聲干擾性,長(zhǎng)的傳輸距離和多站能力等上述優(yōu)點(diǎn)所以本次設(shè)計(jì)采用RS485接口。nRF24L01是一款新型單片射頻收發(fā)器件。5 GHz ISM頻段。nRF24L01功耗低,在以一6 dBm的功率發(fā)射時(shí),工作電流也只有9 mA;接收時(shí),工作電流只有12.3 mA,多種低功率工模式(掉電模式和空閑模式)使節(jié)能設(shè)計(jì)更方便。方案二:CC1100 是原Chipcon 公司推出的一種低成本、真正單片的超高頻無(wú)線收發(fā)器, 為低功耗無(wú)線應(yīng)用而設(shè)計(jì)。芯片低電壓(217V~ 316V ) 供電并且功耗較低(接收數(shù)據(jù)時(shí)為1516mA、214kbo s、433MHz)、靈敏度高(112kbos 下為110dBm ) , 可編程控制的數(shù)據(jù)傳輸率最高可達(dá)500kbo s。 方案三:采用315m超外差無(wú)線收發(fā)模塊。模塊缺點(diǎn):靜態(tài)時(shí)會(huì)輸出短暫針狀干擾雜波,用于遙控沒(méi)有問(wèn)題,但用微處理器數(shù)傳時(shí)要采取軟件濾波;功耗較大,不適宜小容量電池供電應(yīng)用。 本章小結(jié)本章介紹了本課題設(shè)計(jì)總體思路基本原理和框圖及其要實(shí)現(xiàn)的功能,同時(shí)對(duì)框架的各個(gè)主要模塊提出了明確的設(shè)計(jì)方案,為下文的硬件、軟件設(shè)計(jì)奠定基礎(chǔ)。 首先,主機(jī)的信號(hào)尋址到一臺(tái)唯一的終端設(shè)備軟起動(dòng)器(從機(jī));然后,在相反的方向上終端設(shè)備 (軟起動(dòng)器)發(fā)出的應(yīng)答信號(hào)傳輸給主機(jī)。這就不會(huì)使它們?cè)诔跏蓟瘯r(shí)占據(jù)通訊線路,而僅限于相應(yīng)到達(dá)終端設(shè)備本機(jī)的查詢信號(hào)。 ⑶數(shù)據(jù)包格式:表31 數(shù)據(jù)包格式地址功能碼 數(shù)據(jù) 校驗(yàn)碼 8Bits8BitsN 8Bits 16Bits⑷數(shù)據(jù)格式說(shuō)明: 本協(xié)議詳細(xì)定義了校驗(yàn)碼、數(shù)據(jù)序列等,這些都是特定數(shù)據(jù)交換的必要內(nèi)容。如果沒(méi)有錯(cuò)誤,就執(zhí)行數(shù)據(jù)所請(qǐng)求的任務(wù)。返回的響應(yīng)數(shù)據(jù)中包含了以下內(nèi)容:終端從機(jī)地址(Address)、被執(zhí)行了的命令(Function)、執(zhí)行命令生成的被請(qǐng)求數(shù)據(jù)(Data)和一個(gè)校驗(yàn)碼(Check)。 (Address)域 地址域在幀的開(kāi)始部分,由 8 位組成,理論上可能的設(shè)備地址(1~247),這些位標(biāo)明了用戶指定的終端設(shè)備的地址,該設(shè)備將接收來(lái)自與之相連的主機(jī)數(shù)據(jù)。當(dāng)終端發(fā)送回一個(gè)響應(yīng),響應(yīng)中的從機(jī)地址數(shù)據(jù)便告訴了主機(jī)哪臺(tái)終端正與之進(jìn)行通訊。(Function)域 功能域代碼告訴了被尋址到的終端執(zhí)行何種功能操作。 表32 功能域01讀取線圈狀態(tài)取得一組邏輯線圈的當(dāng)前狀態(tài)(ON/OFF)02讀取輸入狀態(tài)取得一組開(kāi)關(guān)輸入的當(dāng)前狀態(tài)(ON/OFF)03讀取保持寄存器在一個(gè)或多個(gè)保持寄存器中取得當(dāng)前的二進(jìn)制值04讀取輸入寄存器在一個(gè)或多個(gè)輸入寄存器中取得當(dāng)前的二進(jìn)制值05強(qiáng)置單線圈強(qiáng)置一個(gè)邏輯線圈的通斷狀態(tài)06預(yù)置單寄存器把具體二進(jìn)值裝入一個(gè)保持寄存器07讀取異常狀態(tài)取得8個(gè)內(nèi)部線圈的通斷狀態(tài),這8個(gè)線圈的地址由控制器決定08回送診斷校驗(yàn)把診斷校驗(yàn)報(bào)文送從機(jī),以對(duì)通信處理進(jìn)行評(píng)鑒09編程(只用于484)使主機(jī)模擬編程器作用,修改PC從機(jī)邏輯10控詢(只用于484)可使主機(jī)與一臺(tái)正在執(zhí)行長(zhǎng)程序任務(wù)從機(jī)通信,探詢?cè)搹臋C(jī)是否已完成其操作任務(wù),僅在含有功能碼9的報(bào)文發(fā)送后,本功能碼才發(fā)送11讀取事件計(jì)數(shù)可使主機(jī)發(fā)出單詢問(wèn),并隨即判定操作是否成功,尤其是該命令或其他應(yīng)答產(chǎn)生通信錯(cuò)誤時(shí)12讀取通信事件記錄可是主機(jī)檢索每臺(tái)從機(jī)的Modbus事務(wù)處理通信事件記錄。這些數(shù)據(jù)的內(nèi)容 可能是數(shù)值、參考地址或者極限值。 該域允許主機(jī)和終端檢查傳輸過(guò)程中的錯(cuò)誤。 循環(huán)冗余校驗(yàn)(CRC)域占用兩個(gè)字節(jié),包含了一個(gè) 16 位的二進(jìn)制值。CRC 運(yùn)算時(shí),首先將一個(gè) 16 位的寄存器預(yù)置為全 1,然后連續(xù)把數(shù)據(jù)幀中的 8 位字節(jié)與該寄存器的 當(dāng)前值進(jìn)行運(yùn)算,僅僅每個(gè)字節(jié)的 8 個(gè)數(shù)據(jù)位參與生成 CRC,起始位和終止位以及可能使用的奇偶位都不影響 CRC運(yùn)算。上述處理重復(fù)進(jìn)行,直到執(zhí)行完了 8 次移位操作,當(dāng)最后一位(第 8 位)移完以后,下一個(gè) 8位字節(jié)與寄存器的當(dāng)前值進(jìn)行異或運(yùn)算,同樣進(jìn)行上述的另一個(gè) 8 次移位異或操作,當(dāng)數(shù)據(jù)幀中的所有字節(jié)都作了處理,生成的最終值就是 CRC 值。 ⑵ 把數(shù)據(jù)幀中的第一個(gè) 8 位字節(jié)與CRC 寄存器中的低字節(jié)進(jìn)行異或運(yùn)算,結(jié)果存回 CRC 寄存器。 ⑷ 如果最低位為 0:重復(fù)第三步(下一次移位); 如果最低位為 1:將CRC寄存器與一個(gè)預(yù)設(shè)的固定值(0A001H)進(jìn)行異或運(yùn)算。 ⑹ 重復(fù)第2步到第 5 步來(lái)處理下一個(gè)八位,直到所有的字節(jié)處理結(jié)束。 RS485接口簡(jiǎn)介RS485 標(biāo)準(zhǔn)理想地用于多分支(multidrop )應(yīng)用和遠(yuǎn)程接口中。由于允許使用4000 英尺長(zhǎng)的電纜, RS485 收發(fā)器可以使用一個(gè)寬(-7V~+12V)共模方式范圍來(lái)調(diào)整零電位偏差。圖31 RS485引腳說(shuō)明 NRF24L01無(wú)線模塊內(nèi)容簡(jiǎn)介,nRF2401是挪威NoRDIC SEMICONDUCTOR公司的產(chǎn)品,它把射頻收發(fā)電路集成在一塊芯片上,可以用MCU模擬SPI通信協(xié)議實(shí)現(xiàn)數(shù)字傳輸。無(wú)線收發(fā)芯片nRF2401具有以下功能:⑴ 125個(gè)工作頻道,工作頻道之間的轉(zhuǎn)換時(shí)間小于200us⑵ 無(wú)線通信數(shù)據(jù)具有地址檢測(cè)和循環(huán)冗余檢查。該模式降低平均發(fā)射功率,降低對(duì)微控制器數(shù)據(jù)傳輸速率的要求。⑻ 獨(dú)特的DuoCeiverT模式。⑼ 工作電壓范圍:;具有正常、旁路和掉電3種供電模式。大多數(shù)寄存器是可讀的。CSN為低后 SPI 接口等待執(zhí)行指令。 表33 SPI指令格式指令名稱指令格式 操作R_REGISTER000A AAAA讀配置寄存器。AAAAA 指出寫(xiě)操作的寄存器地址 只有在掉電模式和待機(jī)模式下可操作。讀操作全部從字節(jié)0 開(kāi)始。應(yīng)用于接收模式下。寫(xiě)操作從字節(jié)0 開(kāi)始。FLUSH_RX 1110 0010清除RX FIFO 寄存器,應(yīng)用于接收模式下在傳輸應(yīng)答信號(hào)過(guò)程中不應(yīng)執(zhí)行此指令。REUSE_TX_PL 1110 0011重新使用上一包有效數(shù)據(jù)。在發(fā)射數(shù)據(jù)包過(guò)程中必須禁止數(shù)據(jù)包重利用功能??梢杂脕?lái)讀狀態(tài)寄存器。當(dāng)訪問(wèn)多字節(jié)寄存器時(shí)首先 要讀/寫(xiě)的是最低字節(jié)的高位。例如:RX_ADDR_P0寄存器的最低字節(jié)可以通過(guò)寫(xiě)一個(gè)字節(jié)給寄存器RX_ADDR_P0 來(lái)改變。 中斷: NRF24L01 的中斷引腳(IRQ)為低電平觸發(fā),當(dāng)狀態(tài)寄存器中TX_DS、RX_DR 或MAX_RT 為高時(shí) 觸發(fā)中斷??善帘沃袛嗫梢员籌RQ中斷屏蔽。默認(rèn)狀態(tài)下所有的中斷源是被禁止的。第4章 通訊系統(tǒng)實(shí)現(xiàn)的硬件設(shè)計(jì)該硬件系統(tǒng)主要包括電源模塊、單片機(jī)最小系統(tǒng)模塊、按鍵、溫度采集、數(shù)碼管和液晶顯示模塊、RS232轉(zhuǎn)RS485接口模塊、NRF24L01無(wú)線通訊模塊,結(jié)構(gòu)方框圖如圖所示, 單片機(jī)最小系統(tǒng)模塊主控MCU如圖41所示,A、B都采用STC89C52為主控MCU,C3(10uf),R1(10K)組成上電復(fù)位電路。 圖42液晶 圖43數(shù)碼管 圖44按鍵 ⑵數(shù)碼管顯示單元如圖43所示,數(shù)碼管采用四位一體的共陰數(shù)碼管,由于單片機(jī)的I/O輸出電流較小,故采用三極管進(jìn)行放大驅(qū)動(dòng),當(dāng)位選為高時(shí)三極管飽和導(dǎo)通,對(duì)應(yīng)位的數(shù)碼管選中。⑷溫度采集單元溫度采集單元采用達(dá)拉斯公司生產(chǎn)的數(shù)字溫度傳感器DS18B20進(jìn)行數(shù)據(jù)采集,其采用單總線數(shù)據(jù)傳輸,具有硬件簡(jiǎn)單的優(yōu)勢(shì),而且數(shù)據(jù)采集周期短,精度高,量程大,可以達(dá)到室溫計(jì)的要求。圖45 NRF24L01 RS232轉(zhuǎn)RS485通訊接口模塊如圖46所示:RS232485轉(zhuǎn)換器主要包括了電源、232電平轉(zhuǎn)換、485電路三部分。為了使用方便,電源部分設(shè)計(jì)成無(wú)源方式,整個(gè)電路的供電直接從PC機(jī)的RS232接口中的DTR(4腳)和RTS(7腳)竊取。經(jīng)實(shí)驗(yàn),本電路只使用其中一條線也能夠正常工作。因此,電路中要說(shuō)D3起的作用是穩(wěn)壓還不如說(shuō)是限壓功能。當(dāng)RE為低電平時(shí),MAX485數(shù)據(jù)輸入有效;當(dāng)DE為高電平時(shí),MAX485數(shù)據(jù)輸出有效。由于本電路DTR和RTS都用于了電路供電,因此使用TX線和MAX232的另外一個(gè)通道及Q1來(lái)控制MAX485的狀態(tài)切換。當(dāng)PC機(jī)發(fā)送數(shù)據(jù)時(shí),MAX232的9腳輸出低電平,經(jīng)Q1倒相后,使MAX485的RE和DE為高電平而處于數(shù)據(jù)發(fā)送狀態(tài)。第5章 通訊系統(tǒng)實(shí)現(xiàn)的軟件設(shè)計(jì)本設(shè)計(jì)要實(shí)現(xiàn)無(wú)線通訊系統(tǒng)對(duì)溫度的實(shí)時(shí)采集與顯示功能,除硬件外,還需要軟件來(lái)控制。 基于MODBUS協(xié)議處理報(bào)文的軟件設(shè)計(jì):: B機(jī)作為從機(jī)在本次設(shè)計(jì)中需要讀出從機(jī)的溫度、從機(jī)的小時(shí)和分鐘信號(hào)所以采用讀模擬寄存器(即03)這個(gè)功能。:讀模擬量的命令號(hào)固定為03。分鐘的邏輯地址為0x03。本次設(shè)計(jì)中每個(gè)邏輯地址只需讀出一個(gè)模擬量。:表示數(shù)據(jù)的字節(jié)個(gè)數(shù),也就是數(shù)據(jù)1,2...n中的n的值。...n:其中[數(shù)據(jù)1][數(shù)據(jù)2]分別是第1個(gè)模擬量的高8位和低8位,[數(shù)據(jù)3][數(shù)據(jù)4]是第2個(gè)模擬量的高8位和低8位,以此類(lèi)推。C ;第二個(gè)值[0B]表示11小時(shí);第三個(gè)值[24]表示36分鐘。 ⑴提高通訊穩(wěn)定性的程序設(shè)計(jì):Modbus通信協(xié)議設(shè)計(jì)中為了預(yù)防干擾,提高系統(tǒng)穩(wěn)定性,防止系統(tǒng)程序跑飛而造成不可預(yù)測(cè)的錯(cuò)誤(雖然概率比較低,一旦出現(xiàn)將會(huì)出現(xiàn)很大的問(wèn)題),所以有必要經(jīng)常重新置485為接受狀態(tài)并將接受地址偏移器(即接收到的字節(jié)個(gè)數(shù))清零。程序流程圖如51所示:1ms Timer1中斷開(kāi)始重裝初值1ms標(biāo)志位設(shè)為1結(jié)束定時(shí)處理開(kāi)始1ms標(biāo)志=1?清零1ms標(biāo)志通訊超時(shí)否?485置為接收接受地址偏移寄存器清零偶校驗(yàn)清零結(jié)束YNYN 圖51提高通訊穩(wěn)定性的程序設(shè)計(jì) ⑵發(fā)送和接收緩沖區(qū)數(shù)據(jù)處理:在Modbus協(xié)議里,報(bào)文的都是以包的形式來(lái)發(fā)送與接收的,設(shè)計(jì)中用兩個(gè)數(shù)組來(lái)定義數(shù)據(jù)包的發(fā)送和接收緩沖區(qū)。具體程序流程圖如52下所示: 串行口中斷開(kāi)始TI=1?RI=1?清零TI中斷標(biāo)志位清零RI中斷標(biāo)志位發(fā)送位置發(fā)送字節(jié)個(gè)數(shù)?發(fā)送緩沖區(qū)數(shù)據(jù)發(fā)給串口鎖存器(加上校驗(yàn)位)485置為接收接受地址偏移寄存器清零偶校驗(yàn)清零結(jié)束設(shè)置通訊超時(shí)值串口鎖存器的值發(fā)給接受緩沖區(qū)測(cè)試校驗(yàn)是否出錯(cuò)YNYNY圖52發(fā)送和接收緩沖區(qū)數(shù)據(jù)處理 ⑶主機(jī)發(fā)送數(shù)據(jù)包和從機(jī)響應(yīng)主機(jī)數(shù)據(jù)包的具體軟件實(shí)現(xiàn):本次設(shè)計(jì)中我們定義從機(jī)(B機(jī))地址為Ox01。接下來(lái)判定第二個(gè)數(shù)據(jù)(即功能碼),該設(shè)計(jì)中除了[03]還擴(kuò)展了[01][05][06]等功能碼以提高代碼可移植性,對(duì)其掃描檢測(cè),如果是[03]則進(jìn)入讀取保存寄存器子函數(shù);在讀取保存寄存器子函數(shù)里,分別讀出接收緩沖區(qū)的第三、第四個(gè)數(shù)據(jù)對(duì)應(yīng)得邏輯地址和第五、第六個(gè)數(shù)據(jù)對(duì)應(yīng)的邏輯地址長(zhǎng)度。在這里我們對(duì)從機(jī)(B機(jī))發(fā)來(lái)的溫度,時(shí)鐘數(shù)據(jù)進(jìn)行處理;處理完后再把這些數(shù)據(jù)和設(shè)備地址、命令號(hào)、返回字節(jié)數(shù)回應(yīng)給發(fā)送緩沖區(qū),再對(duì)緩沖區(qū)數(shù)據(jù)進(jìn)行CRC校驗(yàn)計(jì)算。程序流程圖如54所示:液晶初始化主程序開(kāi)始無(wú)線模塊初始化Timer0中斷開(kāi)始定時(shí)器0初始化按鍵掃描時(shí)鐘更新發(fā)送溫度信息中斷返回判斷中斷標(biāo)志Sendflag為1?無(wú)線接收中斷開(kāi)始讀取接收到的數(shù)據(jù)更新液晶顯示Y中斷返回N結(jié)束結(jié)束結(jié)束圖54 A機(jī)流程圖 B機(jī)流程圖和說(shuō)明 B機(jī)的功能是依據(jù)A機(jī)命令使它顯示溫度還是時(shí)鐘,在主機(jī)(PC機(jī))命令下再把溫度和時(shí)鐘信號(hào)通過(guò)Modbus協(xié)議基于485接口響應(yīng)讀取給主機(jī)。另外數(shù)碼管顯示部分和無(wú)線部分處理分別使用Timer0中斷和無(wú)線接收中斷。除此之外還介紹了A機(jī)流程圖和說(shuō)明、B機(jī)流程圖和說(shuō)明。 實(shí)物整體外觀實(shí)物主要分為A機(jī)、B機(jī)、Rs232485三個(gè)模塊。B機(jī)主要有:數(shù)碼管顯示模塊、52單片機(jī)芯片、18B20溫度傳感器、NRF24L01無(wú)線模塊、5v電池。(PC機(jī))顯示本次設(shè)計(jì)沒(méi)有進(jìn)行上位機(jī)編程,而是通過(guò)串口調(diào)試工具來(lái)看看數(shù)據(jù)有沒(méi)有有效地進(jìn)行傳輸串口調(diào)試結(jié)果如圖62所示:讀取時(shí)鐘分鐘值。 結(jié)果評(píng)價(jià)Modbus是在工業(yè)現(xiàn)場(chǎng)經(jīng)常用到的總線協(xié)議,已成為為通用工業(yè)標(biāo)準(zhǔn),所以基于Modbus協(xié)議去做這個(gè)設(shè)計(jì)很有現(xiàn)實(shí)意義。本文的主要成果總結(jié)如下:⑴分析和研究了相關(guān)通訊協(xié)議的發(fā)展趨勢(shì),對(duì)Modus協(xié)議應(yīng)用的現(xiàn)狀與發(fā)展動(dòng)態(tài)有了一定的了解,并對(duì)單片機(jī)技術(shù)和數(shù)據(jù)通信技術(shù)結(jié)合進(jìn)行了較深入的研究。在此設(shè)計(jì)中也對(duì)NRF24L01無(wú)線模塊有了研究。 不足和展望雖然此次設(shè)計(jì)經(jīng)過(guò)調(diào)試運(yùn)行已經(jīng)基本達(dá)到了預(yù)期的效果,運(yùn)行結(jié)果表明該裝置在技術(shù)上有一定的可靠性,但是由于作者本身的研究經(jīng)驗(yàn)和其它客觀條件的限制,設(shè)計(jì)中難免存在許多有待進(jìn)一步開(kāi)發(fā)改進(jìn)的地方,另外尚有許多理論問(wèn)題和工程應(yīng)用問(wèn)題需要進(jìn)一步的探索和研究,就研究和發(fā)展?fàn)顩r來(lái)看今后仍需在以下幾個(gè)方面努力:⑴溫度采集方面由于DS18B20芯片的局限性精確度不能達(dá)到一定的高度。⑶隨著信息高速發(fā)達(dá),已經(jīng)有更加優(yōu)化的通訊如:嵌入式工業(yè)以太網(wǎng)網(wǎng)絡(luò)通信、zigbee無(wú)線網(wǎng)絡(luò)通信、wifi無(wú)線網(wǎng)絡(luò)通信等等;
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1