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

正文內(nèi)容

基于rs-485總線的數(shù)據(jù)通信與遠(yuǎn)程控制-資料下載頁

2025-06-27 18:54本頁面
  

【正文】 信階段后,發(fā)送的數(shù)據(jù)字 符串,按 4 字節(jié) 定 長數(shù)據(jù)發(fā)送。這是因為本系統(tǒng)中,通信字節(jié)很短就能完成所有操作。另外在讀取 溫度和控制開關(guān)狀態(tài)的兩個數(shù)據(jù)中,溫度值以二進制表示只須二個字節(jié)就行了, 開關(guān)狀態(tài)量其實只須一個字節(jié)就行了,這里多出多個字節(jié)可以作為其它功能的預(yù) 留 數(shù) 據(jù) 。最后 還加入 一個字 節(jié)的檢驗碼,這里采用求和校驗碼 。如果校驗碼 錯 誤, 說明傳輸過程中數(shù)據(jù)發(fā)生了錯誤,因此必須重新發(fā)送數(shù)據(jù)。本系統(tǒng)字符串格式如 下: 0xXX, ① , ② , ③ , ④ ,h1h2 其中: 0xXX:為呼叫從機地 址。 ①:數(shù) 據(jù)字段,英文字母或數(shù)字,按約定方式表達。在讀取溫度時,為溫度 值 的 最 高 位 ;在控制 開關(guān)狀態(tài)時,為 允許控制字, 即約定為 0x50 時,為允許控 制, 其 它 字 符 為不 允許控制。 ②:數(shù)據(jù)字段,英文字母或數(shù)字,按約定方式表達。在讀取溫度時,為溫度 值 的 最 低位 ;在控制 開關(guān)狀態(tài)時,為 預(yù)留字。 ③: 數(shù)據(jù)字段, 英文字母或數(shù)字, 按約定方式表達,為預(yù)留字。 ④:數(shù)據(jù)字段,英文字母或數(shù) 字,按約定方式表達。在讀取溫度時,為預(yù)留 字 ; 在 控 制開 關(guān)狀態(tài)時,為 要被 更新的開關(guān)狀態(tài)。 h1h2:為 ① , ② , ③ , ④數(shù)據(jù)字段代碼的校驗和。 主 機 通信程 序流程圖如圖 31 所示,從機通信程 序流程圖如圖 32 所示。 18 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計 ) 圖 31 主 機 通 信 程 序 流 程 圖 19 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計 ) 從機通信流程 序流程圖 接收到主機發(fā) 來的地址字節(jié) N 是本機地址 Y 發(fā)送本機地址 N 接收到 主機命令 Y N 發(fā)送不 空閑代碼 N 超時 現(xiàn)在空閑嗎 Y 發(fā)送空閑代碼 讀 是讀還是寫 寫 發(fā)送5個字符 最后一位為 校驗位 N N 接收5個字符 校驗正確 Y 校驗正確 Y 結(jié)束 圖 32 從 機 通 信 程 序 流 程 圖 20 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計 ) 計算機主機界面程序設(shè)計 在 計 算機主機界面程序設(shè)計 中, 主要是 為了在實現(xiàn)計算機與 單片機通信的 過程 中,獲取相關(guān)數(shù)據(jù)并及時顯示出來,或者發(fā)送開關(guān)狀態(tài)字節(jié)控制開關(guān)狀態(tài),因此 主界面中需獲取數(shù)據(jù)按鈕和數(shù)據(jù)顯示窗口,需控制遠(yuǎn)程開關(guān)按鈕和設(shè)置遠(yuǎn)程開關(guān) 狀 態(tài) 的 設(shè) 置窗口,另外為 了方便調(diào)試,還可以設(shè)置簡捷的調(diào)試窗口。如圖 33 所 示 為 RS485 通信 計算機 主機控制 窗口的簡裝版 。 圖 33 RS485 通 信 計 算 機 主 機 控 制 窗 口 簡 裝 版 第 一 組窗口為遠(yuǎn)程 溫度獲取窗口,首先需要用戶輸入遠(yuǎn)程地址,然后按下獲 取 遠(yuǎn) 程 溫 度 按 鈕 , 即 可 與 遠(yuǎn) 程 地 址 通 信 , 并 獲 取 該 地 址 當(dāng) 前 檢 測 溫 度 , 顯 示 在 面板 上 。 如 果 選中自動 獲取溫度,則計 算機主機每隔 1 秒獲取該遠(yuǎn)程地址當(dāng)前檢測溫 度 并 及 時 顯示 出來。 第 二 組窗口為遠(yuǎn)程距離 獲取窗口,同樣首先需要用戶輸入遠(yuǎn)程地址,然后按 下 獲取遠(yuǎn)程距離按鈕,即可與遠(yuǎn)程地址通信,并獲取該地址當(dāng)前檢測距離,顯示在 21 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計 ) 面 板 上 。 如果選中自動 獲取距離 ,則計算機 主機每隔 1 秒獲取該遠(yuǎn)程地址當(dāng) 前檢 測 距 離 并 及時顯示 出來。 第 三 組 窗口為遠(yuǎn)程 開關(guān)控制 窗 口,同樣首先需要用戶輸入遠(yuǎn)程地址,然后設(shè) 置 各個開關(guān)狀態(tài),設(shè)置完畢后,按下控制遠(yuǎn)程開關(guān)按鈕,即可與該輸入的遠(yuǎn)程地址 進 行 數(shù) 據(jù) 通信 ,發(fā) 出開 關(guān)控制數(shù)據(jù),從而控制 該遠(yuǎn)程地址開關(guān)狀態(tài)。 第四組窗口為手工調(diào)試控制窗口,在此可以進行自定義的控制命令與收發(fā)內(nèi) 容 。正 常 情況 下為只讀方式,如果需要手工調(diào)試,則得選中手動調(diào)試控制復(fù)選框 。 另 外 點擊更多設(shè)置按鈕,可以更詳細(xì)的設(shè)置通信 模式以及顯示收發(fā)內(nèi)容。 用 戶 界面最下端為狀 態(tài)欄,顯示當(dāng)前串口 設(shè)置狀態(tài)。 整 個 計算機 主機程序中的串口通信 ,采用 API 編程。將在下面的系統(tǒng) 程序設(shè) 計 中 做 詳 細(xì) 介紹 。 有 時 候為了更多設(shè)置通信 的狀態(tài),或者計算機與計算機 通信,以及數(shù)據(jù)的收 發(fā) 方 式 等,就 需要比較 詳細(xì) 的設(shè) 置窗口了,這里由于 RS485 通信計算機 主機控 制窗 口簡裝版窗口比較小,可以直接在同一界面上設(shè)計,只要在需要用時點擊更多設(shè) 置 即 可擴 大窗口。從而進 行更多設(shè) 置 [9] 。當(dāng) 然在不需要更多設(shè)置時,只需隱藏更 多 設(shè) 置 即 可 。如圖 34 所示為 RS485 通信計算機 主機控制 窗口擴展版。在這里 可以 根據(jù)需要,打開或者關(guān)閉串口,設(shè)置通信串口號,以及波特率等。并且為了方便 調(diào)試,把數(shù)據(jù)接收、發(fā)送窗口擴大,有利于查看通信數(shù)據(jù)內(nèi)容,并且設(shè)置了數(shù)據(jù) 接 收 與 發(fā) 送的格式,這樣 在多計算機中也可以更方便,更快捷的收發(fā)數(shù)據(jù) 了。 圖 34 RS485 通 信 計 算 機 主 機 控 制 窗 口 擴 展 版 其 基 本程 序流程圖如圖 35 所示: 22 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計 ) 圖 35 計 算 機 主 機 程 序 流 程 圖 計算機主機串口 API 編程步驟 Windows API(Windows Application Programming Interface,Windows 應(yīng)用程 序 編程接口) ,是所有 Windows 應(yīng)用程序的根本之所在。簡單地說,API 就是一系 列 的例程,應(yīng)用程序通過調(diào)用這些例程來請求操作系統(tǒng)完成一些低級服務(wù)。在 Windows 這樣 的圖 形 用戶 界 面 中 ,應(yīng) 用 于 程序 的窗 口 、圖 標(biāo)、 菜單 和對 話 框等 就 是 由 API 來管理 和維 護的。 本 系 統(tǒng)計算機 主機串口通信 采用 API 函數(shù) 編程,大致步驟如下: (1) 打開串口 句柄 :CreateFile 函數(shù) (2) 建立串口通信 事件:CreateEvent 函數(shù) (3) 初始 化串口 ,設(shè) 置串口參數(shù):SetCommState 函數(shù) (4) 建立讀數(shù)據(jù)的 監(jiān)視線 程 (5) 寫數(shù)據(jù) :用 WriteFile 函數(shù) (6) 結(jié)束時關(guān)閉端口 23 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計 ) 溫度采集與顯示從機程序設(shè)計 溫 度 采集與 顯示 從機程序流程圖如圖 36 所示。 圖 36 溫 度 采 集 與 顯 示 從 機 程 序 流 程 圖 多路開關(guān)控制從機程序設(shè)計 多 路 開關(guān)控制 從機程序流程圖 如圖 37 所示。 圖 37 多 路 開 關(guān) 控 制 從 機 程 序 流 程 圖 24 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計 ) 數(shù)據(jù)校驗 奇偶校驗 最 簡 單的檢錯方法是“奇偶校驗” ,即在傳送字符的各位之外,再傳送 1 位奇/ 偶 校 驗位 。可采用 奇校驗 或者偶校驗 。 奇 校 驗:所 有傳送的數(shù) 位(含字符的各數(shù)位和校驗位)中, “1”的個數(shù)為 奇數(shù) 。 偶 校 驗:所 有傳送的數(shù) 位(含字 符的各數(shù)位和校驗位)中, “1”的個數(shù)為 偶 數(shù) 。 奇 偶 校驗 能夠檢測出信息傳輸過程中的部分誤碼(1 位誤碼能檢出,2 位 及 2 位 以 上誤 碼不能 檢出) ,同時,它不能糾錯。在發(fā)現(xiàn) 錯誤后,只能要求重發(fā)。但由 于其實現(xiàn)簡單,仍得到了廣泛使用。有些檢錯方法,具有自動糾錯能力。如循環(huán) 冗 余 碼(CRC)檢錯等。 求和校驗 另 外 一點比較 簡單的檢錯方法 為求和校驗,即在傳送數(shù)據(jù)時,將所有數(shù)據(jù) 求和 而 得 到 的 一個字 節(jié)。同樣,這種 方 法也不能糾錯,在發(fā)現(xiàn) 錯誤后,只能要求重 發(fā) 。 循環(huán)冗余碼校驗 循 環(huán) 冗余碼校驗 英文名稱為 Cyclical Redundancy Check,簡稱 CRC。它是 利 用 除 法 及 余 數(shù)的 原理 來做錯誤偵測(Error Detecting)的。 實際應(yīng)用時,發(fā)送裝置計 算 出 CRC 值并隨數(shù)據(jù)一 同發(fā)送給接收裝置, 接收裝置對收到的數(shù)據(jù) 重新計算 CRC, 并 與 收 到 的 CRC 相對較,若兩個 CRC 值不同,則說明數(shù)據(jù)通訊出現(xiàn)錯誤。 根 據(jù) 應(yīng)用 環(huán)境與習(xí)慣的不 同,CRC 又可分為以下幾種標(biāo)準(zhǔn) : ① CRC 12 碼; ② CRC 16 碼; ③ CRC CCITT 碼; ④ CRC 32 碼。 CRC12 碼通常 用來傳 送 6bit 字符串。CRC16 及 CRCCCITT 碼則是用來 傳 送 8bit 字符, 其中 CRC16 為美國采用, CRCCCITT 為歐洲國家所采用。 而 CRC32 碼 大 都 被 采用在一 種稱為 PointtoPoint 的同步傳輸中。 下 面 以最常 用的 CRC16 為例說明其生成過程。 CRC16 碼由兩 個字節(jié)構(gòu)成,在開始時 CRC 寄存器的每一位都預(yù)置為 1,然 后 把 CRC 寄存器與 8bit 的數(shù)據(jù)進行異或,之后對 CRC 寄存器從高到低進行移 位 , 25 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計 ) 在 最 高 位(MSB)的位置補零,而 最低位(LSB,移位后已經(jīng)被移出 CRC 寄存 器 ) 如 果 為 1,則把寄存器與 預(yù)定義的多項式碼進行異或,否則如果 LSB 為零, 則無 需 進 行 異 或。重復(fù)上述 的由高至低 的移位 8 次,第一個 8bit 數(shù)據(jù)處理完畢, 用此 時 CRC 寄存器的 值與下一個 8bit 數(shù)據(jù)異或并進行如前一個數(shù)據(jù) 似的 8 次移位。 所 有 的 字符 處理完成后,CRC 寄存器內(nèi)的 值即為最終的 CRC 值。 下 面 為 CRC 的計算 過程: (1) 設(shè)置 CRC 寄存器, 并給 其賦值 0xFFFF。 (2) 將數(shù)據(jù)的 第一個 8bit 字 符與 16 位 CRC 寄存器的低 8 位進行異或, 把 并 結(jié)果存 入 CRC 寄存器。 (3) CRC 寄存器向 右移 一位,MSB 補零,移出并檢查 LSB。 (4) 如果 LSB 為 0,重復(fù)第三步;若 LSB 為 1,CRC 寄存器與多項式碼相 異 或。 (5) 重復(fù)第 3 與第 4 步, 直到 8 次移位全部完成。此時一個 8bit 的數(shù) 據(jù)處 理完畢。 (6) 重復(fù)第 2 到第 5 步, 直到所有數(shù)據(jù)全 部處理完成。 (7) 最終 CRC 寄存器的內(nèi) 容即為 CRC 值 [10] 。 26 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計 ) 4. 系統(tǒng)調(diào)試 硬件調(diào)試 在 設(shè) 計 好整個系統(tǒng) 硬件 電路 圖,做出實物后,需要進行調(diào)試,以確定各硬件模 塊 正 常 工 作。對于各單片 機模 塊的調(diào)試直接用數(shù)碼管顯示 4 位數(shù)據(jù)即可。首先將 各 I/O 口 直接輸出高電平(0xFF) ,則數(shù)碼管全部導(dǎo)通,顯示為“.”,結(jié) 果 調(diào) 試 正 常 ,說 明單片 機工作 正常。然后寫入每隔一秒變化一次的 4 位數(shù)碼顯示 程 序 , 調(diào) 試 也 正 常,說明數(shù)碼管顯示也 正 常 [1] 。 在 確 定硬件都 正常工作 的情況下,現(xiàn)在可以寫入各單片機工作任務(wù)程序,這 里 先不進行數(shù)據(jù)通信,在工作任務(wù)程序調(diào)試通過后,可以加入通信程序。在溫度采 集與顯示從機中,首先要保證程序能正常采集溫度并正確顯示出來。寫入程序并 執(zhí)行,每隔一次采集一次溫度值,并顯示出來,調(diào)試順利通過。在開頭狀態(tài)控制 從 機 中 ,首 先要保證程序能正??刂崎_關(guān)狀態(tài)。寫入程序并執(zhí)行 ,即直接從 P0 口 輸 出 開關(guān) 狀態(tài)字,經(jīng)過 74LS373 鎖存器輸出,從而控制 開頭狀態(tài)。調(diào)試順利通 過 。 通信調(diào)試 接 下 來是在編制好的協(xié)議基礎(chǔ)上, 行計算機 主機與單片機數(shù)據(jù) 通信模塊的調(diào) 進 試 。 首 先 調(diào)試計算機 主機發(fā) 送數(shù)據(jù)與 接收數(shù)據(jù)程序。這里用來了 API 函數(shù)編 程, 直 接 將 計 算機的 COM1 與 COM2 用兩根導(dǎo)線連接進行通信,在 COM 中,2 為接 收 數(shù) 據(jù) 口 ,3 為發(fā) 送數(shù)據(jù) 口,兩個 COM 的 3 端口交 叉連接即可 。也就是 COM1 的 2 口 接 COM2 的 3 口,COM1 的 3 口接 COM2 的 2 口。這里暫時可以不接 第 5 端 口 的 地 線。然后運行 API 編好 的程序, 在上述圖 所示的 RS485 通信計 算 機 主 機 控 制 窗 口擴 展 版 中 右部 分 , 運行 兩 個 該 界面 程 序 ,串 行 口 分 別選 擇 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) 容 。這里說明在默認(rèn)狀態(tài)下的通信正常。 現(xiàn) 在 可 以進行 計算 機 與 單片 機通信 調(diào) 試 , 假設(shè)從 機地址 為 02。主機 發(fā)送數(shù) 據(jù) 內(nèi) 容 格 式 如下: 地址位 命令字 數(shù)據(jù) 1 數(shù)據(jù) 2 數(shù)據(jù) 3 數(shù)據(jù) 4 校驗和 其 中: 27 武 漢 理 工 大 學(xué) 畢 業(yè) 論 文 ( 設(shè) 計 ) 地 址 位 :從機地 址標(biāo)志號碼 命
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1