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

正文內(nèi)容

基于c的rs232通信協(xié)議模擬終端畢業(yè)論文-在線瀏覽

2025-07-14 18:06本頁面
  

【正文】 于1960年,然而RS232的初始版本于1969年才得到認(rèn)證,認(rèn)證的版本號(hào)為RS232C,在這之前有RS232A、RS232B這兩個(gè)版本。近年來,串行技術(shù)與連接設(shè)備都得到了很大的發(fā)展,串口設(shè)備在設(shè)備電纜、工業(yè)控制和軟件應(yīng)用程序中得到了大量的應(yīng)用,毫無疑問,串行連接技術(shù)仍然是工商業(yè)、醫(yī)療、教育和實(shí)驗(yàn)室等領(lǐng)域中所應(yīng)用的廣泛標(biāo)志。未來RS232串口通信仍將在低成本、設(shè)計(jì)簡(jiǎn)單的產(chǎn)品中繼續(xù)發(fā)揮著重要作用。我們堅(jiān)信RS232一定會(huì)繼續(xù)隨著各種外圍設(shè)備的不斷發(fā)展而提高,同時(shí)也將繼續(xù)保持通信領(lǐng)域中應(yīng)用最為廣泛這一地位的。在設(shè)計(jì)過程中,我通過查閱大量相關(guān)書籍和資料,研究學(xué)習(xí)了RS232標(biāo)準(zhǔn)協(xié)議和VC++編程語言下的MFC界面編程,學(xué)習(xí)串行通信相關(guān)知識(shí),通過編程軟件的仿真完成了基于C++的RS232通信協(xié)議的模擬終端。分析RS232串行通信的基本原理,并通過串口調(diào)試助手調(diào)通串口以方便接下來的操作。在VC++高級(jí)語言中,利用Windows下的MSComm ActiveX控件,實(shí)現(xiàn)兩臺(tái)計(jì)算機(jī)間的通信測(cè)試與仿真。RS232C標(biāo)準(zhǔn)是美國EIA(電子工業(yè)聯(lián)合會(huì))與BELL等公司一起開發(fā)的1969年公布的通信協(xié)議。有25條信號(hào)線,盡管有如此多的信號(hào)線,但是對(duì)于一般雙工通信,僅僅需要其中幾條信號(hào)線就可實(shí)現(xiàn)數(shù)據(jù)的傳送,即一條發(fā)送線、一條接收線和一條地線。由于通信設(shè)備廠商都生產(chǎn)與RS232C制式兼容的通信設(shè)備,因此,它作為一種標(biāo)準(zhǔn),目前已在微機(jī)通信接口中廣泛采用,例如在IBM PC機(jī)上的COMCOM2接口,就是RS232C接口。同時(shí),由于RS232標(biāo)準(zhǔn)具有連線簡(jiǎn)單、通訊距離長(zhǎng)等優(yōu)點(diǎn),目前也廣泛應(yīng)用于微型計(jì)算機(jī)系統(tǒng)、工控機(jī)和大型設(shè)備系統(tǒng)中。RS232接口是標(biāo)準(zhǔn)串行接口,其通訊距離小于15 m,它的傳輸速率小于20 kb/s。是目前PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。在RS232的通訊標(biāo)準(zhǔn)中是以一個(gè)25針的接口來定義的,25針的接口在早期的計(jì)算機(jī)如PC或XT機(jī)型上廣泛使用,但在AT機(jī)以后的機(jī)型上,實(shí)際均采用了9針的簡(jiǎn)化版接口應(yīng)用,現(xiàn)在所說的RS232通訊均默認(rèn)為9針的接口[4]。RS232 9針通訊的接口圖如圖21所示 。從同時(shí)傳輸?shù)臄?shù)據(jù)位數(shù)來分通信方式可以分為串行通信(Serial)和并行通信(Parrel)。串行通信中所傳送數(shù)據(jù)的各位按順序一位一位地發(fā)送或接收。串行通信大多數(shù)用于Windows開發(fā)的應(yīng)用程序與外圍數(shù)據(jù)源設(shè)備之間的數(shù)據(jù)交換。串行端口的本質(zhì)功能是作為CPU和串行設(shè)備間的編碼轉(zhuǎn)換器[5]。在接收數(shù)據(jù)時(shí),數(shù)據(jù)格式由串行的位(bit)被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。(1)波特率所謂波特率就是每秒中傳送的二進(jìn)制位數(shù),其單位是bps(bits per second),用來描述數(shù)據(jù)的傳送速率,是衡量串行通信數(shù)據(jù)傳輸速度快慢的重要指標(biāo)。例如:9600bps,是指每秒傳送數(shù)據(jù)9600位,其中包含字符的數(shù)位和其它必須的數(shù)位。在串行通信中,通信線上所傳輸?shù)淖址麛?shù)據(jù)(代碼)是逐位傳送的,一個(gè)字符由若干位組成,所以每秒鐘所傳輸?shù)牟ㄌ芈屎妥址麛?shù)(字符速率)是完全不同的。(2)數(shù)據(jù)位數(shù)據(jù)位是衡量通信中實(shí)際數(shù)據(jù)位的參數(shù)。怎樣決定數(shù)據(jù)位的取值取決于傳送的信息。傳送時(shí)先傳送字符的低位,后傳送字符的高位。(3)停止位停止位一般為,用來表示單個(gè)包的最后一位。停止位的位數(shù)的設(shè)置可以由設(shè)備的軟件設(shè)置,停止位的位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率相應(yīng)地也會(huì)越慢。對(duì)于奇校驗(yàn)和偶校驗(yàn),串口會(huì)設(shè)置校驗(yàn)位,是數(shù)據(jù)位后面的一位,用一個(gè)值保證傳輸?shù)臄?shù)據(jù)有偶個(gè)或者奇?zhèn)€邏輯高位。這樣使得接收設(shè)備能夠知道一個(gè)位的狀態(tài),有機(jī)會(huì)判斷是否有噪聲干擾了通信或者傳輸和接收數(shù)據(jù)是否發(fā)生了不同步。同步通信是一種在發(fā)送端發(fā)送一個(gè)抑制載波的雙邊帶信號(hào),而在接收端恢復(fù)載波,再進(jìn)行檢波的通信方式。它是一種連續(xù)串行傳送數(shù)據(jù)的通信方式,一次通信只傳送一幀信息。 它們均由數(shù)據(jù)字符、CRC即同步字符和校驗(yàn)字符組成。異步通信數(shù)據(jù)通常以字符或者字節(jié)為單位組成字符幀傳送,字符幀由發(fā)送端逐幀發(fā)送,通過傳輸線被接收設(shè)備逐幀接收[7]。發(fā)送端和接收端可以由各自的時(shí)鐘源來控制數(shù)據(jù)的發(fā)送和接收,這兩個(gè)時(shí)鐘源彼此獨(dú)立,互不同步,接收端檢測(cè)到傳輸線上發(fā)送過來的低電平邏輯0(即字符幀起始位)時(shí),確定發(fā)送端已開始發(fā)送數(shù)據(jù),每當(dāng)接收端收到字符幀中的停止位時(shí),就知道一幀字符已經(jīng)發(fā)送完畢[3]。當(dāng)然它也具有自己獨(dú)特的優(yōu)點(diǎn),其優(yōu)點(diǎn)就是它的通信設(shè)備簡(jiǎn)單、便宜。所以要想通過串行通信實(shí)現(xiàn)與外圍設(shè)備數(shù)據(jù)交換,必須用USB轉(zhuǎn)RS232 9針串口轉(zhuǎn)換線。圖23 9芯管腳圖表 21 9針管腳各引腳名稱功能圖九針串口針號(hào)縮寫功能說明信號(hào)來源1DCD功能說明調(diào)制解調(diào)器2RXD接收數(shù)據(jù)調(diào)制解調(diào)器3TXD發(fā)送數(shù)據(jù)PC4DTR數(shù)據(jù)終端準(zhǔn)備PC5GND信號(hào)地6DSR數(shù)據(jù)設(shè)備準(zhǔn)備好調(diào)制解調(diào)器7RTS請(qǐng)求發(fā)送PC8CTS請(qǐng)求發(fā)送調(diào)制解調(diào)器9DELL振鈴指示調(diào)制解調(diào)器目前,市場(chǎng)上使用的串口有9針管腳的還有25針管腳的。圖23顯示了9針通訊的接口管腳,9針管腳的串口各引腳名稱、功能和信號(hào)來源各不相同。由表 21 可知要想實(shí)現(xiàn)兩臺(tái)個(gè)人計(jì)算機(jī)間的數(shù)據(jù)交換,可以將兩個(gè)USB轉(zhuǎn)RS232線的接口頭的3引腳交叉對(duì)接,兩個(gè)5腳相接即可,具體接法如圖24所示,然后再講兩個(gè)USB接頭與兩臺(tái)電腦相連。這就需要用到串口調(diào)試小助手。打開設(shè)備管理器,看一下所插入的轉(zhuǎn)換線占的是哪個(gè)串口,因?yàn)樵诮酉聛碚{(diào)試串口要用到。 本章小結(jié)本章從原理上介紹了串行通信的基本原理,詳細(xì)的闡述了RS232標(biāo)準(zhǔn)協(xié)議接口和與串行通信相關(guān)的一些知識(shí)。為下文編寫Windows應(yīng)用程序?qū)崿F(xiàn)兩臺(tái)PC機(jī)進(jìn)行數(shù)據(jù)交換提供了基礎(chǔ)。這主要是由通信技術(shù)不可靠性決定的。為了避免這一弊端,在進(jìn)行數(shù)據(jù)交換,通信的過程中,對(duì)通信的可靠性檢查就需要校驗(yàn),校驗(yàn)是從數(shù)據(jù)本身進(jìn)行檢查,它依靠某種數(shù)學(xué)上約定的形式進(jìn)行檢查,校驗(yàn)的結(jié)果是可靠或不可靠,如果可靠就對(duì)數(shù)據(jù)進(jìn)行處理,如果不可靠,就丟棄重發(fā)或者進(jìn)行修復(fù)。接收方為了檢查所接收的數(shù)據(jù)是否有誤碼,可采用多種檢測(cè)方法。CRC(Cyclic Redundancy Check)循環(huán)冗余校驗(yàn)碼是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定,CRC循環(huán)冗余校驗(yàn)碼的基本原理是任意一個(gè)由二進(jìn)制位串組成的代碼都可以和一個(gè)系數(shù)僅為‘0’和‘1’取值的多項(xiàng)式一一對(duì)應(yīng)[9]。CRC校驗(yàn)碼是在K位信息碼后再拼接R位的校驗(yàn)碼,整個(gè)編碼長(zhǎng)度為N位,因此,這種編碼也叫(N,K)碼。其中發(fā)送方發(fā)出傳輸字段,傳輸字段由兩部分組成的,分別為信息字段和校驗(yàn)字段[10,11]。 CRC校驗(yàn)碼權(quán)的形式CRC校驗(yàn)碼有很多種權(quán)的行式,使用哪一種形式是根據(jù)通信雙方共同制定的“規(guī)則”而定的,其中各種常用權(quán)的形式如下所示: (31) (32) (33) (34) (35)以其中CRCCCITT形式為例。從把數(shù)據(jù)移位開始計(jì)算,將數(shù)據(jù)位(從最低的數(shù)據(jù)位開始)逐位移入反向耦合移位寄存器。此時(shí),16 位移位寄存器中的內(nèi)容就是 CRC 碼。圖31 生成CRCCCITT的移位寄存器的作用原理 CRC校驗(yàn)的實(shí)現(xiàn)實(shí)現(xiàn)CRC校驗(yàn)有很多種算法和方式,最基本的算法應(yīng)該是按位計(jì)算了,這個(gè)方法可以適用于所有長(zhǎng)度的數(shù)據(jù)校驗(yàn),是最為靈活的,但由于是按位計(jì)算,其效率并不是最迅速、最優(yōu)的,只適用于對(duì)速度不敏感的場(chǎng)合。在使用的時(shí)候,把計(jì)算出來的校驗(yàn)值放在最后兩個(gè)字節(jié)里,將其發(fā)送出去,接收端對(duì)所有的數(shù)據(jù)進(jìn)行相同的校驗(yàn),如校驗(yàn)值為0我們則認(rèn)為其數(shù)據(jù)沒有出錯(cuò)。本章介紹了通信中最常使用的校驗(yàn)方法,即CRC校驗(yàn)。并通過CRC校驗(yàn)實(shí)現(xiàn)通信中的檢錯(cuò)。其中使用MFC直接編寫提供大量預(yù)先編好的類和支持代碼或使用MFC和向?qū)В╓izards)編寫,用AppWizard來生成Windows應(yīng)用程序框架。MFC提供了構(gòu)造Windows應(yīng)用程序的框架,它不僅為應(yīng)用程序建立標(biāo)準(zhǔn)的結(jié)構(gòu),還為其提供了標(biāo)準(zhǔn)的圖形用戶界面如菜單欄、工具欄、狀態(tài)欄等,開發(fā)人員只需要在此基礎(chǔ)上添加針對(duì)特定應(yīng)用的代碼即可。Windows應(yīng)用程序的框架主要有兩種類型,一種是基于對(duì)話框的應(yīng)用程序框架,另外一種是基于文檔、視圖結(jié)構(gòu)的應(yīng)用程序框架。MFC的全稱是Microsoft Foundation Classes。1989年微軟公司成立Application Framework技術(shù)團(tuán)隊(duì),名為AFX小組,用以開發(fā)C++面向?qū)ο蠊ぞ呓oWindows應(yīng)用程序開發(fā)人員使用。 串行通信控件MSComm目前,以Windows下的MFC應(yīng)用程序?yàn)橹饕目蚣?,常用的基于VC++的串行通信編程一般可以用兩種方法實(shí)現(xiàn):一種是使用Windows API通信函數(shù)。其余一種是利用MSComm ActiveX 串行通信控件。程序員就不需要花費(fèi)大量時(shí)間去了解API函數(shù),只需要利用MSComm控件就可實(shí)現(xiàn)串口通信編程[16]。 程序的主要功能實(shí)現(xiàn)兩臺(tái)PC機(jī)之間的通信的應(yīng)用程序,主要實(shí)現(xiàn)了密碼登陸、參設(shè)設(shè)置、參數(shù)顯示、打開串口、關(guān)閉串口、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收、CRC校驗(yàn)等功能。主函數(shù)CRC校驗(yàn)十六進(jìn)制顯示密碼登錄參數(shù)設(shè)置打開串口關(guān)閉串口接收數(shù)據(jù)發(fā)送數(shù)據(jù)圖41 主要功能框圖應(yīng)用程序主要實(shí)現(xiàn)的功能如圖41所示的主要功能框圖,此應(yīng)用程序的總體程序流程圖如圖42所示。在發(fā)送接收數(shù)據(jù)過程中需要打開串口。能夠發(fā)送單個(gè)或多個(gè)數(shù)據(jù)。程序流程圖如圖32所示。 建立工程要實(shí)現(xiàn)通信,首先應(yīng)先建立工程,即新建基于Win32的MFC應(yīng)用程序。并將這個(gè)應(yīng)用程序命名為通信[17,18]。圖43 建立基于對(duì)話框應(yīng)用程序過程圖按照如上所示的方法步驟,建立Win32下的MFC應(yīng)用程序工程,應(yīng)用程序工程名為“通信”,最后點(diǎn)擊完成按鈕,就會(huì)出現(xiàn)MFC應(yīng)用程序初始界面如圖44所示[19]。本次登陸界面使用的數(shù)據(jù)庫是微軟的Access數(shù)據(jù)庫。對(duì)Access數(shù)據(jù)庫的連接與操作有很多種方法,例如在ASP中建立對(duì)Access數(shù)據(jù)庫的連接、使用Recordset對(duì)象操作Access數(shù)據(jù)庫、使用SQL指令操作數(shù)據(jù)庫、使用DSN連接Access數(shù)據(jù)庫等。首先,啟動(dòng)Microsoft Office Access,建立Access數(shù)據(jù)庫,命名為demo01,然后在數(shù)據(jù)庫中創(chuàng)建一個(gè)表,命名為puser,在表puser中輸入序號(hào)(userid)、用戶名(username)和密碼(userp
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1