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

正文內(nèi)容

基于c的rs232通信協(xié)議模擬終端所有專業(yè)(編輯修改稿)

2024-07-04 15:28 本頁面
 

【文章內(nèi)容簡介】 per second),用來描述數(shù)據(jù)的傳送速率,是衡量串行通信數(shù)據(jù)傳輸速度快慢的重要指標(biāo)。國際上對波特率規(guī)定了一個標(biāo)準(zhǔn)系列: 110bps、 300bps、 600bps、 1200bps、 1800bps、2400bps、 4800bps、 9600bps、 、 、 、 56Kbps。例如:9600bps,是指每秒傳送 數(shù)據(jù) 9600 位,其中包含字符的數(shù)位和其它必須的數(shù)位。串行接口電路的接收波特率和發(fā)送的波特率可以設(shè)置,要求接收方的接收波特率必須與發(fā)送方的發(fā)送波特率是一致的。在串行通信中,通信線上所傳輸?shù)淖址麛?shù)據(jù)(代碼)是逐位傳送的,一個字符由若干位組成,所以每秒鐘所傳輸?shù)牟ㄌ芈屎妥址?數(shù)(字符速率)是完全不同的。有時也用 “位周期 ”來表示傳輸速率,位 周期是波特率的倒數(shù)。 (2)數(shù)據(jù)位 數(shù)據(jù)位 是衡量通信中實際數(shù)據(jù)位的參數(shù)。當(dāng)計算機發(fā)送一個信息包,實際的數(shù)據(jù)不會是 8 位的,標(biāo)準(zhǔn)的值是 7 和 8 位。怎樣決定數(shù)據(jù)位的取值取決于傳送的信息。數(shù)據(jù)一般 為 58 位,它在起始位的后面 ,是衡量 傳送字符的有效數(shù)據(jù)位 的個數(shù) 。傳送時先傳送字符的低位,后傳送字符的高位。 數(shù)據(jù)位可以由硬件或軟件設(shè)備進行設(shè)置,用來 滿足設(shè)備間數(shù)據(jù)交換的需要。 (3)停止位 7 停止位一般為 和 2 位,用來表示單個包的最后一位。停止位不僅僅是表示傳輸?shù)慕Y(jié)束,還為 計算機 提供校正時鐘同步的機會,由于 數(shù)據(jù)是在傳輸線上定時的,并且每個設(shè)備都有其自己的時鐘 ,很可能在通信中要進行數(shù)據(jù)交換的兩臺設(shè)備間出現(xiàn)小小的不同步, 停止位 的設(shè)置就是為了避免其中 小小的不同步 [6]。停止位的位數(shù)的設(shè)置可以由設(shè)備的軟件設(shè)置,停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率相應(yīng)地也會越慢。 (4)奇偶校驗位 在串行通信中奇偶校驗是一種簡單的檢錯方式,奇偶校驗位僅占一位,用于進行奇校驗和偶校 驗,同時也可以無校驗位。對于奇校驗和偶校驗,串口會設(shè)置校驗位,是數(shù)據(jù)位后面的一位,用一個值保證傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。例如,如果數(shù)據(jù)是 001,那么對于奇校驗,校驗位是 0; 如果是偶校驗,校驗位是 1。這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者傳輸和接收數(shù)據(jù)是否發(fā)生了不同步。 串行通信的分類 串行通信 又 可以分為同步串行通信和異步串行通信兩類。 同步通信是一種在發(fā)送端發(fā)送一個抑制載波的雙邊帶信號,而在接收端恢復(fù)載波,再進行檢波的通信方式。是按照軟件識別同步字符來實 現(xiàn)數(shù)據(jù)的發(fā)送和接收。它是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。信息中含有若干個數(shù)據(jù)字符。 它們均由數(shù)據(jù)字符、 CRC 即同步字符和校驗字符組成。因為恢復(fù)的載波與被接收的信號載波同頻同相,故取名為同步通信,也稱抑制載波雙邊帶通信。 異步通信數(shù)據(jù)通常以字符或者字節(jié)為單位組成字符幀傳送,字符幀由發(fā)送端逐幀發(fā)送,通過傳輸線被接收設(shè)備逐幀接收 [7]。異步通信 通常 有兩個非常重要的指標(biāo):即 字符幀格式和 波特率。發(fā)送端和接收端可以由各自的時鐘 源 來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘源彼此獨立,互不同步, 接收端檢測到 傳輸線上發(fā)送過來的低電平邏輯 0(即字符幀起始位)時,確定發(fā)送端已開始發(fā)送數(shù)據(jù),每當(dāng)接收端收到字符幀中的停止位時,就知道一幀字符已經(jīng)發(fā)送完畢 [3]。 異步通信有自己的 的缺點, 其缺點是 它在通信時的傳輸效率較低。 當(dāng)然它也具有自己獨特的優(yōu)點, 其優(yōu) 點就是它的通信設(shè)備簡單、便宜。 8 串口的調(diào)制 串口連接 現(xiàn)在大多數(shù)計算機外用接口都是 USB 口, 外用接口很少有串口的, 并且現(xiàn)在的個人計算機的串口大多都是 簡型的 9 針串口。所以要想通過 串行通信實現(xiàn)與外圍設(shè)備數(shù)據(jù)交換,必須用 USB 轉(zhuǎn) RS232 9 針串口轉(zhuǎn)換線。 9 芯管腳圖如圖 23 所示。 圖 23 9 芯管腳圖 表 21 9 針管腳各引腳名稱功能圖 九針串口 針號 縮寫 功能說明 信號來源 1 DCD 功能說明 調(diào)制解調(diào)器 2 RXD 接收數(shù)據(jù) 調(diào)制解調(diào)器 3 TXD 發(fā)送數(shù)據(jù) PC 4 DTR 數(shù)據(jù)終端準(zhǔn)備 PC 5 GND 信號地 6 DSR 數(shù)據(jù)設(shè)備準(zhǔn)備好 調(diào)制解調(diào)器 7 RTS 請求發(fā)送 PC 8 CTS 請求發(fā)送 調(diào)制解調(diào)器 9 DELL 振鈴指示 調(diào)制解調(diào)器 9 目前,市場上使用的串口有 9 針管腳的還有 25 針管腳的。在 RS232 的通訊標(biāo)準(zhǔn)中是以一個 25 針的接口來定義的,并且在早期的計算機中,如 PC 機或XT 機型上得到了廣泛地使用,但是在 AT 機以后的機型上,實際上均采用了 9針管腳的簡化版本應(yīng)用,現(xiàn)在所說的 RS232 通訊均默認(rèn)為 9 針的接口。圖 23顯示了 9 針通訊的接口管腳, 9 針管腳的串口各引腳名稱、功能和信號來源各不相同。表 21 說明九針管腳的串口各引腳的名稱,功能說明和信號源等。 由表 21 可知要想實現(xiàn)兩臺個人計算機間的數(shù)據(jù)交換,可以將兩個 USB 轉(zhuǎn)RS232 線的接口頭的 3 引腳交叉對接,兩個 5 腳相接 即可,具體接法如 圖24 所示,然后再講兩個 USB 接頭與兩臺電腦相連。 圖 24 USB 轉(zhuǎn) RS232 線的連接圖 串口調(diào)試 實現(xiàn)個人計算機與外圍設(shè)備間的串行通信必須將個人計算機上的串口調(diào)通,驗證一下個人計算機上的串口是否好用。這就需要用到串口調(diào)試小助手。首先將一根 USB 轉(zhuǎn) RS232 轉(zhuǎn)換線的 3 引腳短接,然后將帶有 “驅(qū)動程序 ”的光盤放入個人計算機中,安裝并運行與自己計算機相匹配的驅(qū)動程序,接著將轉(zhuǎn)換線的 USB 端插入個人計算機的 USB 口,即完成了初步的安裝。打開設(shè)備管理器,看一 下所插入的轉(zhuǎn)換線占的是哪個串口,因為在接下來調(diào)試串口要用到。 串口調(diào)試助手是一個專門用來調(diào)試串口程序的功能軟件,要想測試串口是否可用,應(yīng)先打開軟件,選擇串口號,打開串口,在發(fā) 送區(qū)輸入內(nèi)容,點擊發(fā)送按鈕,若在接收區(qū)中有所發(fā)送的內(nèi)容,則證明此 串口可用。 10 本章小結(jié) 本章從原理上介紹了串行通信 的基本原理,詳細(xì)的闡 述了 RS232 標(biāo)準(zhǔn)協(xié)議接口和與串行通信相關(guān)的一些知識。 介紹了通信參數(shù)與串行通信的分類。 為下文編寫 Windows 應(yīng)用程序?qū)崿F(xiàn)兩臺 PC 機進行數(shù)據(jù)交換提供了基礎(chǔ)。 11 第 3章 CRC校驗 CRC校驗 原理 CRC校驗碼的基本原理 早期的通信由于受到外界各種因素的干擾 , 會造成傳輸、接收信號的不準(zhǔn)確。這主要是由通信技術(shù)不可靠性決定的。 這樣不可靠的通信就會帶來 “確認(rèn)信息 ”的麻煩,造成一些事情的延誤等。為了避免這一弊端,在進行數(shù)據(jù)交換,通信的過程中,對通信的可靠性檢查就需要校驗,校驗是從數(shù)據(jù)本身進行檢查,它依靠某種數(shù)學(xué)上約定的形式進行檢查,校驗的結(jié)果是可靠或不可靠,如果可靠就對數(shù)據(jù)進行處理,如果不可靠,就丟棄重發(fā)或者進行修復(fù)。 如早期一樣目前在通信系統(tǒng)的數(shù)據(jù)傳輸過程中,由于信道中各種復(fù)雜因素的影響, 使傳輸?shù)男盘柺艿礁蓴_,造成傳輸過程中誤碼的出現(xiàn) [8]。接收方為了檢查所接收的數(shù)據(jù)是否有誤碼,可采用多種檢測方法。差錯控制編碼是目前數(shù)據(jù)傳輸過程中普遍采用的一種提高數(shù)據(jù)通信可靠性的方法,而 CRC 是一種在實際通信中應(yīng)用很廣泛的差錯控制編碼,具有很強的檢錯能力。 CRC( Cyclic Redundancy Check)循環(huán)冗余校驗碼是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定, CRC循環(huán)冗余校驗碼的基本原理是任意一個由二進制位串組成的代碼都可以和一個系數(shù)僅為 ?0?和 ?1?取 值的多項式一一對應(yīng) [9]。例如:代碼 101011 對應(yīng)的多項式為135 ??? XXX ,而多項式為 1256 ??? XXX 對應(yīng)的代碼 1100101。 CRC 校驗碼是 在 K 位信息碼后 再拼接 R 位的校驗碼,整個編碼長度為 N 位,因此,這種編碼也叫( N, K)碼。 CRC 校驗碼的生成借助于多項式除法,其余數(shù)為校驗字段。其中發(fā)送方發(fā)出傳輸字段,傳輸字段由兩部分組成的,分別為信息字段和校驗字段 [10,11]。接收方使用相同的生成碼進行校驗,若接收到的字段或生成碼(二進制除法)如果能夠 除盡,則說明在通信過程中,數(shù)據(jù)交換期間未受到其他因素的干擾,消息收發(fā)成功。 12 CRC校驗碼權(quán)的形式 CRC 校驗碼有很多 種權(quán)的 行式, 使用哪一種形式是根據(jù)通信雙方共同制定的 “規(guī)則 ”而定的,其中各種常用 權(quán) 的形式 如下所示: 18 458 ???? XXXC R C ( 31) 151216 ????? XXXC C IT TC R C ( 32) 116 51516 ???? XXXC R C ( 33) 112 231112 ????? XXXXC R C ( 34) ????????? 101112162223263232 XXXXXXXXC R C 124578 ?????? XXXXXX ( 35) 以其中 CRCCCITT 形式為例。 圖 31 說明了 CRC 校驗中 CRC 值是如何計算出來的,體現(xiàn)的多項式正是 式 ( 35) 。從把數(shù)據(jù)移位開始計算,將數(shù)據(jù)位(從最低的數(shù)據(jù)位開始)逐位移入反向耦合移位寄存器。當(dāng)所有數(shù)據(jù)位都這樣操作后,計算結(jié)束。此時, 16 位移位寄存器中的內(nèi)容就是 CRC 碼。圖 31 中X5 代表 Bit5, X12 代表 Bit12, 1 是代表 Bit0, 16X 比較特別,是指移位寄存器移入的數(shù)據(jù)。 圖 31 生成 CRCCCITT 的移位寄存器的作用原理 13 CRC校驗的實 現(xiàn) 實現(xiàn) CRC 校驗有很多種算法和方式,最基本的算法應(yīng)該是按位計算了 ,這個方法可以適用于所有長度的數(shù)據(jù)校驗,是最為靈活 的,但由于是按位計算,其效率并不是最迅速、最優(yōu)的,只適用于對速度不敏感的場合。還有一種是按照字節(jié)計算 CRC 校驗碼,按字節(jié)校驗是每次計算 8 位數(shù)據(jù),多是基于查表的算法,首先要準(zhǔn)備一個表,一共 256 項。在使用的時候,把計算出來的校驗值放在最后兩個字節(jié)里,將其發(fā)送出去,接收端對所有的數(shù)據(jù)進行相同的校驗,如校驗值為 0 我們則認(rèn)為其數(shù)據(jù)沒有出錯。這個是按高位到低位的發(fā)送順序時使用的校驗方法。 本章介紹了通信中最常使用的校驗方法,即 CRC 校驗。分析了 CRC 校驗原理、算法形式和算法的實現(xiàn)。并通過 CRC 校驗實現(xiàn)通信中的檢錯。 14 第 4章 軟件的實現(xiàn)及其測試 開發(fā)工具概述 Windows 編程與 MFC Windows 編程大致 有兩種方法,一種是 Windows C 方向,即 SDK 方向,調(diào)用 Win 32 API 函數(shù),主要是利用 C 語言來實現(xiàn)軟件的功能與編程;另外一種方法是 C++對 SDK 函數(shù)進行包裝,如 VC 的 MFC(微軟基礎(chǔ)類庫), BOB 的 OWL等 [12,13]。其中使用 MFC 直接編寫提供大量預(yù)先 編好的類和支持代碼或使用 MFC和向?qū)В?Wizards)編寫,用 AppWizard 來生成 Windows 應(yīng)用程序框架。 本次軟件程序設(shè)計功能的實現(xiàn)主要利用 Windows 編程中 MFC(利用 C++語言)。 MFC 提供了構(gòu)造 Windows 應(yīng)用程序的框架,它不僅為應(yīng)用程序建立標(biāo)準(zhǔn)的結(jié)構(gòu),還為其提供了標(biāo)準(zhǔn)的圖形用戶界面如菜單欄、工具欄、狀態(tài)欄等,開發(fā)人員只需要在此基礎(chǔ)上添加針對特定應(yīng)用的代碼即可。使用此應(yīng)用程序框架有很多優(yōu)點,如其應(yīng)用程序代碼小,運行速度快,并且此應(yīng)用程序提供的工具也降低了編碼的難度等。 Windows應(yīng)用 程序的框架主要有兩種類型,一種是基于對話框的應(yīng)用程序框架,另外一種是基于文檔、視圖結(jié)構(gòu)的應(yīng)用程序框架。平大家所見到的大多數(shù)Windows應(yīng)用程序均屬于這兩種框架。 MFC的全稱是 Microsoft Foundation Classes。是微軟把 Windows API 進行封裝的類庫,該類庫以層次結(jié)構(gòu)組織起來,其中封裝了大部分 Windows API函數(shù)和Windows控件 [14]。 1989年微軟公司成立 Application Framework技術(shù)團隊,名為AFX小組,用以開發(fā) C++面向?qū)ο蠊ぞ呓o Windows應(yīng)用程序開發(fā)人員使用。啟用MFC編碼可以使 Windows程序員能夠利用 C++面向?qū)ο蟮乃枷脒M行編程,用好的類作為標(biāo)準(zhǔn),減少代碼的編寫量 [15]。 串行通信控件 MSComm 目前,以 Windows 下的 MFC 應(yīng)用程序為主要 的 框架, 常用的 基于 VC++的串行通信編程一般可以用兩種方法實現(xiàn):一種是使用 Windo
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1