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

正文內(nèi)容

基于rs-485總線的數(shù)據(jù)通信與遠(yuǎn)程控制(參考版)

2025-06-30 18:54本頁面
  

【正文】 現(xiàn) 在 可 以進(jìn)行 計(jì)算 機(jī) 與 單片 機(jī)通信 調(diào) 試 , 假設(shè)從 機(jī)地址 為 02。然后運(yùn)行 API 編好 的程序, 在上述圖 所示的 RS485 通信計(jì) 算 機(jī) 主 機(jī) 控 制 窗 口擴(kuò) 展 版 中 右部 分 , 運(yùn)行 兩 個(gè) 該 界面 程 序 ,串 行 口 分 別選 擇 COM COM2, 接著可以在 COM1 發(fā)送窗口寫入一串字符串,按發(fā)送按鈕,在 COM2 界 面 程 序 的 接收數(shù)據(jù) 窗口將顯示 接收到 COM1 發(fā)送來的數(shù)據(jù)內(nèi) 容;同樣在 COM2 發(fā) 送 窗 口 寫 入一串字符串,按發(fā)送按鈕,在 COM1 界面程序的接收數(shù)據(jù)窗口將顯示 接 收 到 COM2 發(fā)送來的數(shù)據(jù)內(nèi) 容 。也就是 COM1 的 2 口 接 COM2 的 3 口,COM1 的 3 口接 COM2 的 2 口。 首 先 調(diào)試計(jì)算機(jī) 主機(jī)發(fā) 送數(shù)據(jù)與 接收數(shù)據(jù)程序。調(diào)試順利通 過 。在開頭狀態(tài)控制 從 機(jī) 中 ,首 先要保證程序能正??刂崎_關(guān)狀態(tài)。在溫度采 集與顯示從機(jī)中,首先要保證程序能正常采集溫度并正確顯示出來。然后寫入每隔一秒變化一次的 4 位數(shù)碼顯示 程 序 , 調(diào) 試 也 正 常,說明數(shù)碼管顯示也 正 常 [1] 。對(duì)于各單片 機(jī)模 塊的調(diào)試直接用數(shù)碼管顯示 4 位數(shù)據(jù)即可。 (7) 最終 CRC 寄存器的內(nèi) 容即為 CRC 值 [10] 。此時(shí)一個(gè) 8bit 的數(shù) 據(jù)處 理完畢。 (4) 如果 LSB 為 0,重復(fù)第三步;若 LSB 為 1,CRC 寄存器與多項(xiàng)式碼相 異 或。 (2) 將數(shù)據(jù)的 第一個(gè) 8bit 字 符與 16 位 CRC 寄存器的低 8 位進(jìn)行異或, 把 并 結(jié)果存 入 CRC 寄存器。 所 有 的 字符 處理完成后,CRC 寄存器內(nèi)的 值即為最終的 CRC 值。 CRC16 碼由兩 個(gè)字節(jié)構(gòu)成,在開始時(shí) CRC 寄存器的每一位都預(yù)置為 1,然 后 把 CRC 寄存器與 8bit 的數(shù)據(jù)進(jìn)行異或,之后對(duì) CRC 寄存器從高到低進(jìn)行移 位 , 25 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 在 最 高 位(MSB)的位置補(bǔ)零,而 最低位(LSB,移位后已經(jīng)被移出 CRC 寄存 器 ) 如 果 為 1,則把寄存器與 預(yù)定義的多項(xiàng)式碼進(jìn)行異或,否則如果 LSB 為零, 則無 需 進(jìn) 行 異 或。 而 CRC32 碼 大 都 被 采用在一 種稱為 PointtoPoint 的同步傳輸中。 CRC12 碼通常 用來傳 送 6bit 字符串。 實(shí)際應(yīng)用時(shí),發(fā)送裝置計(jì) 算 出 CRC 值并隨數(shù)據(jù)一 同發(fā)送給接收裝置, 接收裝置對(duì)收到的數(shù)據(jù) 重新計(jì)算 CRC, 并 與 收 到 的 CRC 相對(duì)較,若兩個(gè) CRC 值不同,則說明數(shù)據(jù)通訊出現(xiàn)錯(cuò)誤。 循環(huán)冗余碼校驗(yàn) 循 環(huán) 冗余碼校驗(yàn) 英文名稱為 Cyclical Redundancy Check,簡(jiǎn)稱 CRC。 求和校驗(yàn) 另 外 一點(diǎn)比較 簡(jiǎn)單的檢錯(cuò)方法 為求和校驗(yàn),即在傳送數(shù)據(jù)時(shí),將所有數(shù)據(jù) 求和 而 得 到 的 一個(gè)字 節(jié)。有些檢錯(cuò)方法,具有自動(dòng)糾錯(cuò)能力。在發(fā)現(xiàn) 錯(cuò)誤后,只能要求重發(fā)。 偶 校 驗(yàn):所 有傳送的數(shù) 位(含字 符的各數(shù)位和校驗(yàn)位)中, “1”的個(gè)數(shù)為 偶 數(shù) ??刹捎?奇校驗(yàn) 或者偶校驗(yàn) 。 圖 36 溫 度 采 集 與 顯 示 從 機(jī) 程 序 流 程 圖 多路開關(guān)控制從機(jī)程序設(shè)計(jì) 多 路 開關(guān)控制 從機(jī)程序流程圖 如圖 37 所示。在 Windows 這樣 的圖 形 用戶 界 面 中 ,應(yīng) 用 于 程序 的窗 口 、圖 標(biāo)、 菜單 和對(duì) 話 框等 就 是 由 API 來管理 和維 護(hù)的。 圖 34 RS485 通 信 計(jì) 算 機(jī) 主 機(jī) 控 制 窗 口 擴(kuò) 展 版 其 基 本程 序流程圖如圖 35 所示: 22 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 圖 35 計(jì) 算 機(jī) 主 機(jī) 程 序 流 程 圖 計(jì)算機(jī)主機(jī)串口 API 編程步驟 Windows API(Windows Application Programming Interface,Windows 應(yīng)用程 序 編程接口) ,是所有 Windows 應(yīng)用程序的根本之所在。在這里 可以 根據(jù)需要,打開或者關(guān)閉串口,設(shè)置通信串口號(hào),以及波特率等。當(dāng) 然在不需要更多設(shè)置時(shí),只需隱藏更 多 設(shè) 置 即 可 。 有 時(shí) 候?yàn)榱烁嘣O(shè)置通信 的狀態(tài),或者計(jì)算機(jī)與計(jì)算機(jī) 通信,以及數(shù)據(jù)的收 發(fā) 方 式 等,就 需要比較 詳細(xì) 的設(shè) 置窗口了,這里由于 RS485 通信計(jì)算機(jī) 主機(jī)控 制窗 口簡(jiǎn)裝版窗口比較小,可以直接在同一界面上設(shè)計(jì),只要在需要用時(shí)點(diǎn)擊更多設(shè) 置 即 可擴(kuò) 大窗口。 整 個(gè) 計(jì)算機(jī) 主機(jī)程序中的串口通信 ,采用 API 編程。 另 外 點(diǎn)擊更多設(shè)置按鈕,可以更詳細(xì)的設(shè)置通信 模式以及顯示收發(fā)內(nèi)容。 第四組窗口為手工調(diào)試控制窗口,在此可以進(jìn)行自定義的控制命令與收發(fā)內(nèi) 容 。 如果選中自動(dòng) 獲取距離 ,則計(jì)算機(jī) 主機(jī)每隔 1 秒獲取該遠(yuǎn)程地址當(dāng) 前檢 測(cè) 距 離 并 及時(shí)顯示 出來。 如 果 選中自動(dòng) 獲取溫度,則計(jì) 算機(jī)主機(jī)每隔 1 秒獲取該遠(yuǎn)程地址當(dāng)前檢測(cè)溫 度 并 及 時(shí) 顯示 出來。如圖 33 所 示 為 RS485 通信 計(jì)算機(jī) 主機(jī)控制 窗口的簡(jiǎn)裝版 。 主 機(jī) 通信程 序流程圖如圖 31 所示,從機(jī)通信程 序流程圖如圖 32 所示。在讀取溫度時(shí),為預(yù)留 字 ; 在 控 制開 關(guān)狀態(tài)時(shí),為 要被 更新的開關(guān)狀態(tài)。 ③: 數(shù)據(jù)字段, 英文字母或數(shù)字, 按約定方式表達(dá),為預(yù)留字。 ②:數(shù)據(jù)字段,英文字母或數(shù)字,按約定方式表達(dá)。 ①:數(shù) 據(jù)字段,英文字母或數(shù)字,按約定方式表達(dá)。如果校驗(yàn)碼 錯(cuò) 誤, 說明傳輸過程中數(shù)據(jù)發(fā)生了錯(cuò)誤,因此必須重新發(fā)送數(shù)據(jù)。另外在讀取 溫度和控制開關(guān)狀態(tài)的兩個(gè)數(shù)據(jù)中,溫度值以二進(jìn)制表示只須二個(gè)字節(jié)就行了, 開關(guān)狀態(tài)量其實(shí)只須一個(gè)字節(jié)就行了,這里多出多個(gè)字節(jié)可以作為其它功能的預(yù) 留 數(shù) 據(jù) 。 在 上 述計(jì)算機(jī)與 單片 機(jī)進(jìn) 入數(shù)據(jù)通信階段后,發(fā)送的數(shù)據(jù)字 符串,按 4 字節(jié) 定 長(zhǎng)數(shù)據(jù)發(fā)送。 而主 機(jī) 接 收 到 該從機(jī)地 址數(shù)據(jù) 回應(yīng)后,說明呼叫從機(jī)成功,也將第 9 位置“0” 進(jìn)入 , 數(shù)據(jù)通信階段,同時(shí)發(fā)送數(shù)據(jù)字符串。 計(jì)算機(jī)與單片機(jī)具體通信過程為:計(jì)算機(jī)主機(jī)首先發(fā)送要與之通信的從機(jī)地 址 , 并 置 第 9 位數(shù)據(jù)為 “1” ,所 有從機(jī)都將接收到該地址數(shù)據(jù), 并進(jìn)入中斷程序 以 檢 驗(yàn)所 接收到的數(shù)據(jù)地 址是否與本機(jī)地址相同,如果不相同,則不做任何事 情, 直 接 退 出 中斷;如果相同,則立即置 SM2 為“0” ,并發(fā)送本機(jī)地址以做回應(yīng) 。而當(dāng) SM2=0 時(shí),則不論第 9 位數(shù)據(jù)為 “0”還是為“1” 都 , 將 前 8 位 數(shù)據(jù)裝入 SBUF 中,并 產(chǎn)生中斷請(qǐng)求。單片機(jī)工作在波特率 為 4800bps,串行工作 方 式 3 下 。 本系統(tǒng)通信協(xié)議編制 本 系 統(tǒng)通信協(xié) 議選 定為 11 位為一幀的串行通信 方式,即 1 個(gè)起始位,9 個(gè) 數(shù) 據(jù) 位 和 1 個(gè)停止位 。 ( 6) 更新快 的數(shù) 據(jù) ,應(yīng) 盡 量 簡(jiǎn)短 。 ( 5) 便于觀 察 的 數(shù) 據(jù)應(yīng) 該 在結(jié)尾 加入換 行等 符 號(hào)。 ( 4) 一般應(yīng) 該對(duì) 數(shù) 據(jù)進(jìn) 行 校驗(yàn)。對(duì) 于長(zhǎng)度 不度的 數(shù)據(jù) 包 ,數(shù)據(jù) 長(zhǎng)度可 以事先 約 定,也可以在數(shù)據(jù)包中的約定位置定義;對(duì)于長(zhǎng)度可變的數(shù)據(jù)包,則必須每次在 數(shù) 據(jù) 包 中 指 定 位 置 說 明 。同包頭一 樣,包尾字符必須也有別于數(shù)據(jù)信息,這種特征是數(shù)據(jù)包中其他數(shù)據(jù)沒有的,否 則 也 會(huì) 引 起混亂。 所謂非 定長(zhǎng), 是指沒 有指明 數(shù)據(jù)包 的長(zhǎng)度 。包頭字符必須有別于數(shù)據(jù)信息,這種特征是數(shù)據(jù) 包 中 其他 數(shù)據(jù)沒有的, 否則就會(huì)引起混亂。 ( 1) 數(shù)據(jù) 包 必須 有 包 頭。 在 串 口用戶層 的通信協(xié) 議中, 般是圍繞發(fā)送方如何建立數(shù)據(jù)包和接收方 如何 一 處 理 數(shù) 據(jù) 包并 從數(shù)據(jù) 包中 提取出 關(guān)心的信息,通信協(xié) 議也必須是有利于這一目的。 在 大 多數(shù)編程實(shí)踐中,接收與 發(fā)送的數(shù)據(jù) 并不需要直接顯示在程序界面中,而 只是顯示對(duì)我們有利用價(jià)值的幾個(gè)數(shù)據(jù),或者根本不顯示,只是在程序內(nèi)部進(jìn)行 處理,這時(shí),數(shù)據(jù)發(fā)送方和數(shù)據(jù)接收方就必須事先約定數(shù)據(jù)發(fā)送的格式。 底層協(xié)議一般由硬件提供商和 設(shè)備廠家提供,在一般性的通信編程中很少涉及,而用戶層協(xié)議則是面向使用者 的,也就是我們?cè)诰幊讨型ǔUf到的通信協(xié)議。 從 機(jī) 程 序 主 要 以 獨(dú) 立 子 系 統(tǒng) 的 形 式 作 為 前 端 測(cè) 控 核 心 , 接 收 并 執(zhí) 行 主機(jī) 分配的任務(wù),如作為溫度采集子系統(tǒng),每秒采集一次當(dāng)前檢測(cè)位置溫度,并存入 數(shù) 據(jù) 區(qū) ; 當(dāng)接收到主機(jī)讀取命令 時(shí) ,將存入數(shù)據(jù)發(fā) 送給主機(jī)。第一部分正是 整個(gè)系統(tǒng)結(jié)合成為一體工作的關(guān)鍵,只有實(shí)現(xiàn)了這個(gè)關(guān)鍵部分,下面兩大部分的 實(shí)現(xiàn)才有意義。 14 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) VCC DS1 DS2 DS3 DS4 DS5 DS6 DS7 DS8 LED0 R2 510 LED0 R3 510 LED0 R4 510 LED0 R5 510 LED0 R6 510 LED0 R7 510 LED0 R8 510 LED0 R9 510 Q1 9014 R10 R11 Q2 9014 R12 Q3 9014 R13 Q4 9014 R14 Q5 9014 R15 Q6 9014 R16 Q7 9014 R17 Q8 9014 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 圖 210 多路開關(guān)控制從機(jī)的開關(guān)控制電路圖 RS485 電路 接線同圖 24,通信速率為 4800bps,單片機(jī)計(jì)數(shù) 初值為 0xF3,數(shù) 據(jù) 位 8 位 ,地址校驗(yàn) 位 1 位,停止位 1 位。由 于 是控制 多路開關(guān),開關(guān)的狀態(tài)需要相對(duì)穩(wěn)定,所以加入了 74LS373 鎖 存 器 ,以 加強(qiáng)輸出的穩(wěn)定性 。 通 信 速率為 4800bps, 單片 機(jī) 計(jì)數(shù)初值為 0xF3, 數(shù)據(jù)位 8 位,地址校驗(yàn)位 1 位 , 停 止 位 1 位。當(dāng)然,硬件接線電路圖比較簡(jiǎn) 單 , 那 么 它 的 程序就相對(duì)來說比較 復(fù)雜 了一點(diǎn),詳情請(qǐng)見程序設(shè)計(jì)部分。如圖 27 所示為數(shù)據(jù) 顯 示電 路 圖 , LED 為共陽極數(shù)據(jù) 管。即前三位顯示在溫度為正時(shí),直接 顯示整數(shù)值,第四位為顯示小數(shù)值;而當(dāng)溫度為負(fù)時(shí),第一位只顯示負(fù)號(hào),中間 兩 位 顯 示 負(fù)溫度的整數(shù)部分, 最后 一位不變,仍為顯示小 數(shù)值。單片機(jī)晶振選用了 12MHz。 溫度采集與顯示從機(jī)的單片機(jī)最小系統(tǒng) 由 于 只做溫度采集與 顯示 以及 通信的任務(wù),該從機(jī) I/O 口的使用數(shù)量 很少,因 此 處 理 器 選擇 了 I/O 數(shù)量 較少, 而體積相對(duì)更小的 AT89C2051 單片機(jī)。 而 DS1820 數(shù) 字式溫度傳感器只有三個(gè)引腳,第一引腳為電源+5V 輸入,第三引腳為 地線,只有中間第二引腳為數(shù)據(jù)傳輸線。 為 確 保線 路連接正確,特在 RS232C 的 TTL 電平的信號(hào)接收端接入一個(gè)發(fā)光 二極管,不僅能檢測(cè)線路連通的情況,而且在數(shù)據(jù)通信過程中,隨著數(shù)據(jù)的傳輸 出 而 閃 爍 ,起到了美觀 的作用。 這 一 距 離 的計(jì)算,是偏于保守的,不過在實(shí)際應(yīng)用中,當(dāng)使用 9600bps,普通雙 絞 屏 蔽 線 時(shí) ,距離 也只 可以達(dá) 到 30 米~35 米 [4] 。對(duì) 于 普 通 導(dǎo) 線 ,其電容值約為 170pF/M。計(jì)算機(jī)的 COM 口,第 2 腳為信號(hào)接收 , 第 3 腳 為 信號(hào)輸 出,第 5 腳為地線,圖中只要將這 3 條線連接即可 正常工作了 。 如圖 25 所示為 RS232/RS485 轉(zhuǎn)換器接線電路圖。 10 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) RS232/RS485 轉(zhuǎn)換器 如何實(shí)現(xiàn)單片機(jī)與計(jì)算機(jī)之間的通信是整個(gè)系統(tǒng)能否結(jié)合成為一體工作的關(guān) 鍵 。若命令碼指示有數(shù)據(jù),則接受數(shù)據(jù)碼并發(fā)送應(yīng)答;若命令碼為狀態(tài) 查詢,則發(fā)送僅包含狀態(tài)碼的應(yīng)答數(shù)據(jù)包;若命令碼為數(shù)據(jù)查詢,則發(fā)送僅含數(shù) 據(jù)碼的應(yīng)答數(shù)據(jù)包;若命令碼為廣播的控制信號(hào),則根據(jù)控制信號(hào)運(yùn)行而不做應(yīng) 答 。一般僅用命令碼來傳遞控制信息,這樣整個(gè) 數(shù) 據(jù) 包 長(zhǎng) 度為 4 個(gè)字 節(jié)。在協(xié)議中, 以引導(dǎo)碼來區(qū)分?jǐn)?shù)據(jù)的發(fā)送或接收,地址碼用于區(qū)分各個(gè)從機(jī),每個(gè)從機(jī)被分配 一個(gè)唯一的地址。 在 A 端 增 加上 拉電阻 R5,在 B 端增加下拉電阻 R7,AB 間并入一個(gè)電 阻 R6,(典 型值 R5=1kΩ;R2=1kΩ;R3=100Ω),這樣當(dāng)總線上 沒有數(shù)據(jù)傳 輸時(shí),AB 間電壓 差 大 約為 238mV,即使總線上 沒有數(shù)據(jù)傳 輸時(shí),也很難 出現(xiàn)數(shù)據(jù)的 起始位“0” , 這樣也就增加總線的抗干擾能力。由于永遠(yuǎn) 不會(huì)有停止位,這便會(huì)產(chǎn)生一幀錯(cuò)誤結(jié)果,也就不會(huì)再有設(shè)備請(qǐng)求總線,網(wǎng)絡(luò)將 陷 于 癱 瘓 狀態(tài)。在一個(gè) 半雙工的 RS485 串行接口網(wǎng)絡(luò)中 ,主機(jī)的收發(fā)器給從機(jī) 發(fā) 完 一 組 信 息后將總線 置為三態(tài),沒有任何信號(hào)驅(qū)動(dòng)總線,使 A 和 B 之間的電平差 9 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計(jì) ) 趨 于 0, 時(shí)接收器的 輸出狀態(tài)不 定。在這種情況下,必須按其特性阻抗進(jìn) 行 終 端 匹 配。 那 么 在 一 個(gè) 簡(jiǎn) 單 的 RS485 收 發(fā) 裝 置 中 , 可
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1