畢業(yè)設(shè)計(jì)(論文)-智能串口調(diào)試軟件_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)-智能串口調(diào)試軟件_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)-智能串口調(diào)試軟件_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)-智能串口調(diào)試軟件_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)-智能串口調(diào)試軟件_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、畢業(yè)設(shè)計(jì)(論文)題 目 姓 名 學(xué) 號(hào) 專(zhuān)業(yè)班級(jí) 所在學(xué)院 指導(dǎo)教師(職稱(chēng)) 二一 年 五 月 十 日智能串口調(diào)試軟件【摘要】 串行通信是一種廣泛使用且實(shí)用的通信方式,在控制類(lèi)應(yīng)用中相當(dāng)普遍,.NET Framework2.0類(lèi)庫(kù)中的SerialPort類(lèi)為串行通信提供了強(qiáng)大的工具。本文詳細(xì)介紹了串口的工作原理和通信協(xié)議等串行通信相關(guān)的基本知識(shí),分析了串口通信程序的設(shè)計(jì)思路,闡述了在Visual Studio 2005編程環(huán)境下串口調(diào)試軟件的具體實(shí)現(xiàn)方法。探討了如何利用C# SerialPort類(lèi)進(jìn)行串行通信程序的設(shè)計(jì),分析了C#串行類(lèi)的應(yīng)用特點(diǎn),證明了采用C#SerialPort類(lèi)可以使串行

2、通信程序設(shè)計(jì)具有更大的靈活性,可以提高串口傳輸數(shù)據(jù)的可靠性。實(shí)際運(yùn)行結(jié)果表明這種編程方法穩(wěn)定、可靠,實(shí)用性強(qiáng)。 【關(guān)鍵詞】 串行通信,串口調(diào)試,SerialPort類(lèi) Intelligent Serial Port D【Abstract】 Serial communication is a widely used and practical method of communication which is applied in the control class quite common, and the class SerialPort of .NET Framework2.0 has pr

3、ovided a powerful tool for the serial communication. This paper describes the working principle of serial ports and serial communication protocols such as the basic knowledge related to serial communication, and analyses the thread of the design of the serial communication program. The concrete meth

4、od for realizing the serial port debug software under the environment of Visual Studio 2005 is also explained. How to use C#. SerialPort class to design the serial communication procedure is discussed. The characteristic of C#. SerialPort class is analyzed. It proved that the serial communication pr

5、ocedure design could be more flexible by using C#. SerialPort class and the SerialPorts reliability of date transferring also can be improved. The application results show that his procedure design method can stable, reliable and high practicable. 【Key Words】 Serial Communication, Serial port debugg

6、ing,C# SerialPort Class 目錄 TOC o 1-3 h z u HYPERLINK l _Toc261473327 第1章 緒論 PAGEREF _Toc261473327 h 1 HYPERLINK l _Toc261473328 1.1 研究背景 PAGEREF _Toc261473328 h 1 HYPERLINK l _Toc261473329 課題研究的目的和意義 PAGEREF _Toc261473329 h 2 HYPERLINK l _Toc261473330 串口調(diào)試軟件的發(fā)展現(xiàn)狀 PAGEREF _Toc261473330 h 2 HYPERLINK

7、l _Toc261473331 實(shí)際工作中存在的問(wèn)題 PAGEREF _Toc261473331 h 3 HYPERLINK l _Toc261473332 課題研究的目的 PAGEREF _Toc261473332 h 4 HYPERLINK l _Toc261473333 課題的主要研究?jī)?nèi)容 PAGEREF _Toc261473333 h 5 HYPERLINK l _Toc261473334 第2章 串行通信接口 PAGEREF _Toc261473334 h 7 HYPERLINK l _Toc261473335 2.1 串行通信接口定義 PAGEREF _Toc261473335 h

8、 7 HYPERLINK l _Toc261473336 數(shù)據(jù)發(fā)送 PAGEREF _Toc261473336 h 7 HYPERLINK l _Toc261473337 信號(hào)定義 PAGEREF _Toc261473337 h 8 HYPERLINK l _Toc261473338 2.2 RS232串行通信接口 PAGEREF _Toc261473338 h 8 HYPERLINK l _Toc261473339 2.3 RS485串行通信接口 PAGEREF _Toc261473339 h 9 HYPERLINK l _Toc261473340 2.4 其他串行通信接口 PAGEREF

9、_Toc261473340 h 10 HYPERLINK l _Toc261473341 2.4.1 USB接口 PAGEREF _Toc261473341 h 10 HYPERLINK l _Toc261473342 2.4.2 IEEE-1394 PAGEREF _Toc261473342 h 11 HYPERLINK l _Toc261473343 3章串行通信協(xié)議 PAGEREF _Toc261473343 h 12 HYPERLINK l _Toc261473344 同步通信 PAGEREF _Toc261473344 h 12 HYPERLINK l _Toc261473345 異

10、步通信 PAGEREF _Toc261473345 h 13 HYPERLINK l _Toc261473346 傳輸制式 PAGEREF _Toc261473346 h 14 HYPERLINK l _Toc261473347 硬件握手和軟件握手 PAGEREF _Toc261473347 h 15 HYPERLINK l _Toc261473348 3.4.1硬件握手 PAGEREF _Toc261473348 h 15 HYPERLINK l _Toc261473349 軟件握手 PAGEREF _Toc261473349 h 16 HYPERLINK l _Toc261473350 串

11、行通信的基本參數(shù) PAGEREF _Toc261473350 h 16 HYPERLINK l _Toc261473351 3.5.1 波特率 PAGEREF _Toc261473351 h 16 HYPERLINK l _Toc261473352 數(shù)據(jù)的傳輸單位 PAGEREF _Toc261473352 h 17 HYPERLINK l _Toc261473353 3.5.3 起始位與停止位 PAGEREF _Toc261473353 h 17 HYPERLINK l _Toc261473354 3.5.4 校驗(yàn)位 PAGEREF _Toc261473354 h 17 HYPERLINK

12、l _Toc261473355 第4章 串口通信程序設(shè)計(jì)方法研究 PAGEREF _Toc261473355 h 19 HYPERLINK l _Toc261473356 4.1 win32下串口通信的主要方法 PAGEREF _Toc261473356 h 19 HYPERLINK l _Toc261473357 串行通信Windows API函數(shù) PAGEREF _Toc261473357 h 19 HYPERLINK l _Toc261473358 串行通信組件 PAGEREF _Toc261473358 h 20 HYPERLINK l _Toc261473359 4.1.3 Seri

13、alPort類(lèi) PAGEREF _Toc261473359 h 21 HYPERLINK l _Toc261473360 串行通信SerialPort類(lèi) PAGEREF _Toc261473360 h 21 HYPERLINK l _Toc261473361 4.2.1 SerialPort常用屬性和方法 PAGEREF _Toc261473361 h 21 HYPERLINK l _Toc261473362 4.2.2 SerialPort的使用 PAGEREF _Toc261473362 h 24 HYPERLINK l _Toc261473363 第5章串口調(diào)試軟件的實(shí)現(xiàn) PAGEREF

14、 _Toc261473363 h 27 HYPERLINK l _Toc261473364 開(kāi)發(fā)語(yǔ)言和開(kāi)發(fā)環(huán)境簡(jiǎn)介 PAGEREF _Toc261473364 h 27 HYPERLINK l _Toc261473365 5.1.1 C#語(yǔ)言和.NET Framework PAGEREF _Toc261473365 h 27 HYPERLINK l _Toc261473366 5.1.2 Visual Studio 2005 簡(jiǎn)介 PAGEREF _Toc261473366 h 28 HYPERLINK l _Toc261473367 串口調(diào)試軟件的實(shí)現(xiàn) PAGEREF _Toc2614733

15、67 h 29 HYPERLINK l _Toc261473368 串口調(diào)試軟件的編程實(shí)現(xiàn)過(guò)程 PAGEREF _Toc261473368 h 29 HYPERLINK l _Toc261473369 串口調(diào)試軟件界面的設(shè)計(jì) PAGEREF _Toc261473369 h 30 HYPERLINK l _Toc261473370 5.2.3 串口調(diào)試軟件的測(cè)試 PAGEREF _Toc261473370 h 31 HYPERLINK l _Toc261473371 結(jié)論 PAGEREF _Toc261473371 h 33 HYPERLINK l _Toc261473372 參考文獻(xiàn) PAGE

16、REF _Toc261473372 h 34 HYPERLINK l _Toc261473373 附錄 PAGEREF _Toc261473373 h 35 HYPERLINK l _Toc261473374 致謝 PAGEREF _Toc261473374 h 42圖目錄 TOC h z t 圖標(biāo)題 c HYPERLINK l _Toc261472269 圖3.1 傳輸制式示意圖 PAGEREF _Toc261472269 h 14 HYPERLINK l _Toc261472270 圖5.1 串口調(diào)試軟件算法流程圖 PAGEREF _Toc261472270 h 30 HYPERLINK

17、l _Toc261472271 圖5.2 串口調(diào)試軟件界面 PAGEREF _Toc261472271 h 31 HYPERLINK l _Toc261472272 圖5.3 遠(yuǎn)距離串口通信連接方式 PAGEREF _Toc261472272 h 32表目錄 TOC h z t 表標(biāo)題 c HYPERLINK l _Toc261472174 表2.1 RS232端口引腳縮寫(xiě)功能說(shuō)明 PAGEREF _Toc261472174 h 9 HYPERLINK l _Toc261472175 表3.1 同步通信協(xié)議的幀格式 PAGEREF _Toc261472175 h 13 HYPERLINK l

18、_Toc261472176 表4.1 SerialPort的常用方法 PAGEREF _Toc261472176 h 24第1章 緒論 研究背景在現(xiàn)代工業(yè)社會(huì)中,隨著電子產(chǎn)業(yè)的迅猛發(fā)展,電子技術(shù)與傳統(tǒng)工業(yè)相結(jié)合的機(jī)電一體化技術(shù)在現(xiàn)代工業(yè)中占據(jù)著越來(lái)越大的主導(dǎo)地位。各種各樣的單片機(jī),微處理器無(wú)處不在的發(fā)揮著巨大的作用。它就像是人的大腦一樣,精確的指揮著每一部機(jī)器、每一臺(tái)設(shè)備的運(yùn)作,可以說(shuō),電子芯片的出現(xiàn)直接影響了工業(yè)社會(huì)的進(jìn)程,是工業(yè)現(xiàn)代化的重要里程碑。不僅如此,就在人們的日常生活中,電子技術(shù)帶來(lái)的影響也是翻天覆地的,以至于我們無(wú)時(shí)無(wú)刻的在與電子芯片打交道,試想一下,如果我們失去了電子芯片,我們

19、退回到的應(yīng)該不僅是農(nóng)業(yè)社會(huì),而是石器時(shí)代了。探討單片機(jī)、微處理器能夠發(fā)揮巨大作用的機(jī)理,就是它可以將外界的指令輸入到自身內(nèi)部,經(jīng)過(guò)計(jì)算,轉(zhuǎn)換成控制信息傳送給外界。因此,數(shù)據(jù)的交流是單片機(jī)、微處理器工作的重要意義所在,而串口則是單片機(jī)、微處理器內(nèi)部擔(dān)負(fù)數(shù)據(jù)傳送任務(wù)的重要部件之一1。串口叫做串行接口,也稱(chēng)串行通信接口,是計(jì)算機(jī)的一種應(yīng)用廣泛的接口,幾乎在每種操作系統(tǒng)以及需要進(jìn)行數(shù)據(jù)傳送的裝置上都支持串口操作。串口也廣泛用于各行各業(yè)的各種設(shè)備中,如船舶中設(shè)備的互相通訊, 醫(yī)院驗(yàn)血、驗(yàn)?zāi)虻雀鞣N化驗(yàn)設(shè)備、工業(yè)控制中上位機(jī)與8031或8051、PLC等的通訊。隨著人類(lèi)社會(huì)的進(jìn)步與科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)技術(shù)

20、在民用和工業(yè)控制領(lǐng)域的作用越來(lái)越顯示出其魅力,特別是串行通信技術(shù)在通訊領(lǐng)域被廣泛應(yīng)用。標(biāo)準(zhǔn)的RS232接口已成為計(jì)算機(jī)、外設(shè)、交換機(jī)和許多通訊設(shè)備的標(biāo)準(zhǔn)接口。雖然近年來(lái)隨著USB口的日趨流行,RS232接口作為一種傳統(tǒng)的串行通信接口有被取代的趨勢(shì)。然而由于它具有較高的性?xún)r(jià)比和傳輸?shù)目煽啃?,在傳輸速率要求不是很高的情況下,串口通信仍然具有其自身的優(yōu)勢(shì),是在計(jì)算機(jī)與計(jì)算機(jī)之間或者計(jì)算機(jī)與外設(shè)之間傳送數(shù)據(jù)的常用方法。由于串口通信使用計(jì)算機(jī)的內(nèi)建串口,用戶(hù)無(wú)需再購(gòu)買(mǎi)任何特殊硬件,只要一根串口線就可以達(dá)到發(fā)送或者接收數(shù)據(jù)的目的,而且不失測(cè)試的準(zhǔn)確性。采用RS485接口標(biāo)準(zhǔn)可以實(shí)現(xiàn)更遠(yuǎn)的傳輸距離、更強(qiáng)的抗

21、干擾能力和更快的傳輸速率。所以串口通信現(xiàn)在仍然廣泛應(yīng)用于數(shù)據(jù)采集、監(jiān)測(cè)監(jiān)控以及儀表控制等場(chǎng)合。串口通信的廣泛應(yīng)用決定了串口調(diào)試軟件開(kāi)發(fā)的必要性,而且為了保證各設(shè)備間的正常通訊以及讓計(jì)算機(jī)控制、管理這些設(shè)備并與它們交換數(shù)據(jù),串口的調(diào)試和相關(guān)的串口調(diào)試軟件的開(kāi)發(fā)也是實(shí)際應(yīng)用中所必須的。課題研究的目的和意義現(xiàn)在的產(chǎn)品若要自動(dòng)化,一定要提供通道與計(jì)算機(jī)進(jìn)行通信,而最簡(jiǎn)單的方式就是在產(chǎn)品內(nèi)部少上一顆單芯片,利用單芯片上的串行通信功能進(jìn)行自動(dòng)化的工作,由于計(jì)算機(jī)中的串口是必備的通道,且以?xún)r(jià)格及技術(shù)上來(lái)說(shuō)是最能被廠商所接受的,因此,市面上很多自動(dòng)化產(chǎn)品也都加上了串行通信的功能,從而擴(kuò)大產(chǎn)品的使用領(lǐng)域,使實(shí)現(xiàn)

22、技術(shù)變得簡(jiǎn)單化。與任何一個(gè)自動(dòng)化設(shè)備進(jìn)行聯(lián)機(jī),最好是先對(duì)該系統(tǒng)的通信功能先進(jìn)行測(cè)試。通過(guò)串行通信的控制,通??梢詫a(chǎn)品內(nèi)部開(kāi)放的功能做一個(gè)先期的測(cè)試工作,確定沒(méi)有問(wèn)題了,然后再對(duì)系統(tǒng)進(jìn)行程序的實(shí)現(xiàn),這是一個(gè)比較保險(xiǎn)的做法,免得在系統(tǒng)設(shè)計(jì)到設(shè)計(jì)到一半的時(shí)候發(fā)現(xiàn)最重要的通信功能有問(wèn)題,浪費(fèi)了大量的寶貴時(shí)間。串口調(diào)試軟件的發(fā)展現(xiàn)狀 在自動(dòng)控制領(lǐng)域,經(jīng)常要實(shí)現(xiàn)上位機(jī)和下位機(jī)之間的通信,串口通信是上、下位機(jī)常用的通信手段。串口通信已經(jīng)在控制類(lèi)應(yīng)用中相當(dāng)普遍,串口調(diào)試軟件為串口的調(diào)試帶來(lái)了極大方便。目前在國(guó)內(nèi)外也有許多的串口調(diào)試軟件,這些軟件各有特點(diǎn),有些操作簡(jiǎn)單方便,但功能也許有所欠缺,比較適應(yīng)入門(mén)級(jí)的

23、人,也有功能比較強(qiáng)大操作比較復(fù)雜的適合專(zhuān)業(yè)人員使用的軟件,總的來(lái)說(shuō)目前常用的智能串口調(diào)試軟件主要:串口調(diào)試軟件SSCOM、串口調(diào)試助手和BOAST串口調(diào)試工具等。1. 串口調(diào)試軟件SSCOM 串口調(diào)試軟件SSCOM是一個(gè)功能較強(qiáng)的串口調(diào)試軟件2,它可以在Win95/98、Win2000、WinNT、WinXP 系統(tǒng)下運(yùn)行,該軟件主要特點(diǎn)有:接收從串口進(jìn)來(lái)的數(shù)據(jù)并在窗口顯示;所接收到的數(shù)據(jù)的顯示方式可以選擇為字符方式或者HEX方式;串口波特率可以選擇為110bps-256000bps;可以即時(shí)顯示存在的串口號(hào);可以在字符串輸入框輸入想要發(fā)送的字符串,字符串輸入框可以輸入HEX數(shù)據(jù)串進(jìn)行發(fā)送,數(shù)據(jù)

24、的值從00到FF,沒(méi)有任何限制;可以打開(kāi)一個(gè)文本文件和一個(gè)二進(jìn)制文件并以當(dāng)前的波特率發(fā)送到串口;可以保存窗口內(nèi)容到一個(gè)文本文件,文件名取自當(dāng)前時(shí)間,保存在當(dāng)前目錄。2. 串口調(diào)試助手 串口調(diào)試助手(SComAssistant)是一個(gè)功能比較全面而又小巧的串口調(diào)試軟件3,它支持常用的300-115200bps波特率,能設(shè)置校驗(yàn)、數(shù)據(jù)位和停止位,能以ASCII碼或十六進(jìn)制接收或發(fā)送任何數(shù)據(jù)或字符(包括中文),可以任意設(shè)定自動(dòng)發(fā)送周期,并能將接收數(shù)據(jù)保存成文本文件,能發(fā)送任意大小的文本文件。串口調(diào)試助手是一個(gè)非常不錯(cuò)的串口調(diào)試軟件,但是對(duì)于在單片機(jī)開(kāi)發(fā)過(guò)程中常會(huì)用到的hex和bin文件,串口調(diào)試助手

25、不能正確發(fā)送。3. BOAST串口調(diào)試工具 BOAST串口調(diào)試工具可以作為通用的串口調(diào)試工具,也可以作為以BOAST為首的,國(guó)內(nèi)數(shù)字稱(chēng)重傳感器通訊調(diào)試工具。該軟件作者在上位機(jī)軟件開(kāi)發(fā)過(guò)程中,根據(jù)自己的實(shí)際需要編寫(xiě)了這款工具軟件。為串口通訊調(diào)試帶來(lái)了方便。軟件編寫(xiě)過(guò)程中,參考SSCOM的幾項(xiàng)典型功能,并作了一些改進(jìn)。該軟件為綠色、免安裝、完全免費(fèi)軟件。主要功能有:自動(dòng)搜索串口,并打開(kāi)串口;接收數(shù)據(jù)可以進(jìn)行十六進(jìn)制和ASCII切換;接收數(shù)據(jù)時(shí),光標(biāo)始終顯示在最后一行等。實(shí)際工作中存在的問(wèn)題 自動(dòng)化設(shè)備在各個(gè)行業(yè)都得到了普遍的應(yīng)用,隨著計(jì)算機(jī)分析控制技術(shù)的發(fā)展,作為生產(chǎn)設(shè)備中最主要的串行通信得到了廣

26、泛的應(yīng)用,設(shè)備與計(jì)算機(jī)間的各種通信協(xié)議也層出不窮,但是,由于沒(méi)有相關(guān)的技術(shù)標(biāo)準(zhǔn),不同公司各自建立自己的設(shè)備通信標(biāo)準(zhǔn),目前,各種設(shè)備的生產(chǎn)數(shù)據(jù)格式不統(tǒng)一、各自獨(dú)立,因此無(wú)法對(duì)大量設(shè)備的生產(chǎn)和通信數(shù)據(jù)進(jìn)行有效和統(tǒng)一的管理,也無(wú)法通過(guò)先進(jìn)的數(shù)據(jù)融合方法進(jìn)行各種數(shù)據(jù)的分析,因此限制了生產(chǎn)設(shè)備管理維護(hù)水平的提高。另一方面,在大多數(shù)情況下,設(shè)備的供應(yīng)商并不提供與數(shù)據(jù)傳輸接口相關(guān)的技術(shù)資料,而且許多進(jìn)口的設(shè)備儀器之間的串行通信也不附帶相關(guān)的技術(shù)資料,另外,由于市場(chǎng)變化的原因,很多設(shè)備附帶的技術(shù)資料已經(jīng)無(wú)法查找,因此,想充分利用這些設(shè)備進(jìn)行二次開(kāi)發(fā)或者自行編制數(shù)據(jù)處理程序收集數(shù)據(jù)變得非常困難,造成大量設(shè)備不能

27、充分開(kāi)發(fā)利用甚至完全不能滿足實(shí)際使用環(huán)境的需要。出于各種技術(shù)和商業(yè)上的考慮,為多個(gè)不同設(shè)備提供通信協(xié)議的解析和建立通用的數(shù)據(jù)接口管理軟件等工作進(jìn)展緩慢。一般只有由多種設(shè)備的用戶(hù)來(lái)進(jìn)行相關(guān)的二次開(kāi)發(fā)工作,來(lái)適應(yīng)自己企業(yè)的生產(chǎn)需求。 沒(méi)有相關(guān)的技術(shù)標(biāo)準(zhǔn)特別是設(shè)備通信標(biāo)準(zhǔn),各種設(shè)備之間存在的不同通信協(xié)議和接口模塊,既不利于進(jìn)行統(tǒng)一分析和管理,也不利串行通信的調(diào)試工作。雖然都是利用計(jì)算機(jī)進(jìn)行數(shù)據(jù)交換的測(cè)試,但由于這些設(shè)備的生產(chǎn)廠家不同,所使用的通信接口和通信協(xié)議也都不同,因此,在具體測(cè)試這些設(shè)備時(shí)操作人員不僅需要熟悉這些設(shè)備的現(xiàn)場(chǎng)使用方法,而且還要分別能夠使用各自的調(diào)試軟件進(jìn)行不同操作方式的數(shù)據(jù)通信傳

28、輸和數(shù)據(jù)綜合分析,給使用帶來(lái)了很大的麻煩。目前,由于串行通信數(shù)據(jù)鏈路層協(xié)議林林總總不可勝數(shù),難以逐一進(jìn)行分析,這也給串口調(diào)試軟件設(shè)計(jì)帶來(lái)一定的困擾,現(xiàn)在設(shè)計(jì)串口調(diào)試軟件時(shí)都是基于某種具體的通信協(xié)議,根據(jù)設(shè)備的實(shí)際情況來(lái)進(jìn)行設(shè)計(jì)的,還沒(méi)有一種可以仿真串行通信中幾乎所有情況的軟件。因此,對(duì)于串口調(diào)試軟件設(shè)計(jì)方面的工作需要作進(jìn)一步地研究。1.2.3課題研究的目的在嵌入式硬件系統(tǒng)中,串口是一個(gè)非常重要的硬件組成部分。嵌入式硬件系統(tǒng)通過(guò)串口可以與上位機(jī)(如計(jì)算機(jī),工控機(jī)等)進(jìn)行連接,從而實(shí)現(xiàn)上位機(jī)和下位嵌入式系統(tǒng)之間的通信,完成數(shù)據(jù)交換、參數(shù)設(shè)置,組網(wǎng)等功能。調(diào)試就是定位程序中的錯(cuò)誤并修正其錯(cuò)誤的過(guò)程4

29、,在軟件開(kāi)發(fā)環(huán)境中,測(cè)試工具可以說(shuō)是衡量開(kāi)發(fā)環(huán)境優(yōu)劣的重要因素。在嵌入式系統(tǒng)軟件開(kāi)發(fā)環(huán)境中,調(diào)試尤其顯其重要性,因?yàn)殚_(kāi)發(fā)者所面對(duì)的硬件往往就一塊裸板,沒(méi)有輸入輸出設(shè)備,操作和應(yīng)用也往往是綁定在一起的,如何“導(dǎo)出”調(diào)試信息也是軟硬件開(kāi)發(fā)者必須考慮的一個(gè)問(wèn)題。最早期的調(diào)試方法基本上采取的是“crash and burn”的方式,即把編譯好的目標(biāo)代碼“燒”到目標(biāo)板上,讓它跑起來(lái),如果未得到預(yù)期結(jié)果,仔細(xì)檢查源代碼,猜測(cè)出問(wèn)題可能出現(xiàn)的地方,嘗試修改源代碼,再重新“燒”到目標(biāo)板上,再運(yùn)行,一直重復(fù)這個(gè)過(guò)程,直到結(jié)果正確為止。使用這種方法,猶如在暗室中維修精密儀器,可想而知程序調(diào)試的難度有多大。為了方便

30、嵌入式系統(tǒng)中代碼的調(diào)試,在硬件上,出現(xiàn)了各式各樣的具有調(diào)試功能的調(diào)試板。如增加了串口、并口,網(wǎng)口使之通過(guò)串、并口線或網(wǎng)線并借助另外一臺(tái)有輸入輸出設(shè)備的計(jì)算機(jī)對(duì)目標(biāo)板上的軟件進(jìn)行調(diào)試和控制。在軟件上,可以利用串口調(diào)試軟件直觀的測(cè)試通信協(xié)議,參數(shù)等。為了能夠提高操作人員的工作效率,以及能夠記錄歷史工作數(shù)據(jù),并利用這些數(shù)據(jù)進(jìn)行計(jì)算機(jī)的智能分析和管理,我們不僅需要將這些設(shè)備的數(shù)據(jù)收集起來(lái)進(jìn)行分析,而且該系統(tǒng)有一個(gè)智能的通信接口,能夠與所有這些現(xiàn)場(chǎng)設(shè)備進(jìn)行通信,以收集現(xiàn)場(chǎng)采集的測(cè)試數(shù)據(jù)。操作人員只需要掌握串口調(diào)試軟件的使用方法,就可以對(duì)所有生產(chǎn)設(shè)備的數(shù)據(jù)進(jìn)行傳輸、管理和分析操作。隨著串口應(yīng)用領(lǐng)域越來(lái)越廣

31、泛,運(yùn)用的復(fù)雜程度也越來(lái)越高,實(shí)際應(yīng)用中對(duì)串口通信的調(diào)試要求也越來(lái)越高。本課題的目的在于深入剖析不同設(shè)備和它們與上位機(jī)之間通信時(shí)采用的傳輸協(xié)議,在這一基礎(chǔ)上,為整個(gè)系統(tǒng)與計(jì)算機(jī)之間的通信編寫(xiě)驅(qū)動(dòng)程序。期望能通過(guò)對(duì)多種設(shè)備和協(xié)議的研究,分析和比較不同系統(tǒng)通信的長(zhǎng)處和不足,并建立一種相對(duì)比較完善的生產(chǎn)設(shè)備串行通信協(xié)議,編寫(xiě)對(duì)所研究的大多數(shù)設(shè)備適用的串口調(diào)試程序,使該程序盡可能的能夠仿真串行通信中的所有情況。 1.3課題的主要研究?jī)?nèi)容本課題旨在研究串口的工作原理以及串口調(diào)試的實(shí)現(xiàn)算法,并介紹以一些常用的串口調(diào)試軟件,比較它們的優(yōu)缺點(diǎn),再在Visual Studio 2005環(huán)境中使用C#語(yǔ)言編寫(xiě)完成

32、一個(gè)串口調(diào)試程序的設(shè)計(jì)。本設(shè)計(jì)是在WINDOWS XP操作系統(tǒng)下,設(shè)計(jì)自己的通信協(xié)議,借助C#語(yǔ)言編程環(huán)境,使用C#serialport類(lèi),實(shí)現(xiàn)串口通信。論文一共有六個(gè)章節(jié)組成:第一章序論,介紹了課題研究的背景,串口調(diào)試軟件發(fā)展現(xiàn)狀以及其中存在的問(wèn)題,提出本課題的研究目的和意義。第二章串行通信接口,介紹了串口的分類(lèi)以及串口的工作原理。第三章串行通信協(xié)議,介紹了串行通信的實(shí)現(xiàn)過(guò)程及標(biāo)準(zhǔn),串行通信技術(shù)的原理和規(guī)范。第四章串口通信程序設(shè)計(jì)研究,主要介紹串行通信驅(qū)動(dòng)程序設(shè)計(jì)的方法,通過(guò)串行通信SerialPort類(lèi)的研究及相關(guān)串行通信組建的建立,學(xué)習(xí)串行通信驅(qū)動(dòng)程序設(shè)計(jì)的方法。第五章串口調(diào)試軟件的實(shí)現(xiàn)

33、,介紹了串口調(diào)試軟件的開(kāi)發(fā)語(yǔ)言和開(kāi)發(fā)環(huán)境,闡述了在Visual Studio 2005編程環(huán)境下串口調(diào)試軟件的具體實(shí)現(xiàn)方法。最后是結(jié)論,對(duì)課題研究工作和論文的總結(jié)和評(píng)價(jià),以及對(duì)后續(xù)工作的展望。第2章 串行通信接口 串行通信接口定義串行總線是一種久遠(yuǎn)但目前仍常用的通信方式,早期的儀器、單片機(jī)、PLC等均使用串口是計(jì)算機(jī)進(jìn)行通信,最初多用于數(shù)據(jù)通信上,但隨著工業(yè)測(cè)控行業(yè)的發(fā)展,許多測(cè)量?jī)x器都帶有串口總線接口,因此了解掌握串口通信技術(shù)及其編程是非常有必要的10。串行通信接口,按電氣標(biāo)準(zhǔn)及協(xié)議來(lái)分包括:RS232、RS422、RS485,USB等。RS232、RS422與RS485標(biāo)準(zhǔn)只對(duì)接口的電氣特

34、性做出決定,不涉及插件、電纜或協(xié)議。USB是近幾年發(fā)展起來(lái)的新型接口標(biāo)準(zhǔn),主要應(yīng)用于高速數(shù)據(jù)傳輸領(lǐng)域。串口的技術(shù)簡(jiǎn)單成熟、性能可靠、價(jià)格低廉,所以要求的軟硬件環(huán)境或者條件都很低,廣泛應(yīng)用與計(jì)算機(jī)及相關(guān)領(lǐng)域,遍及調(diào)制解調(diào)器、串行打印機(jī)、各種監(jiān)控模塊、PLC、數(shù)控機(jī)床、單片機(jī)及相關(guān)智能設(shè)備,甚至路由器也不例外(通過(guò)串口設(shè)置參數(shù))。2.1.1數(shù)據(jù)發(fā)送 通信的主要目的是將數(shù)據(jù)從一端發(fā)送到另一端,以實(shí)現(xiàn)數(shù)據(jù)的交換。計(jì)算機(jī)與設(shè)備問(wèn)的數(shù)據(jù)交換,計(jì)算機(jī)與計(jì)算機(jī)問(wèn)的數(shù)據(jù)傳輸都屬于通信的范疇。 一個(gè)完整的通信系統(tǒng)包括發(fā)送端、接收端、轉(zhuǎn)換數(shù)據(jù)的接口及發(fā)送數(shù)據(jù)的實(shí)際信道或媒質(zhì)。一般情況下,發(fā)送與接收的節(jié)點(diǎn)稱(chēng)為DTE(

35、Data Terminal Equipment,數(shù)據(jù)終端設(shè)備)。數(shù)據(jù)在到達(dá)正確目的地之前,可能需要經(jīng)過(guò)一系列中間節(jié)點(diǎn),它們負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)送工作,以送達(dá)目的地,這些中間節(jié)點(diǎn)稱(chēng)為DSE(Data Switching Equipment,數(shù)據(jù)交換設(shè)備)。終端設(shè)備發(fā)送數(shù)據(jù)時(shí),必須先將數(shù)據(jù)轉(zhuǎn)換為電氣信號(hào),以便在線路上傳遞,而負(fù)責(zé)數(shù)據(jù)與電氣信號(hào)轉(zhuǎn)換的設(shè)備稱(chēng)為DCE(Data Communication Equipment,數(shù)據(jù)通信設(shè)備)。DTE與DCE間的數(shù)據(jù)傳輸線路通常使用RS232串行通信,而DCE與DSE間的媒質(zhì)則包括了雙絞線、同軸電纜、光纖或無(wú)線電等。2.1.2信號(hào)定義在計(jì)算機(jī)內(nèi)部的記錄中所有的數(shù)據(jù)

36、都是0與l,任何數(shù)據(jù)都是這兩個(gè)數(shù)字的組合。所有電子儀器的基礎(chǔ)均來(lái)自“開(kāi)”、“關(guān)”兩個(gè)狀態(tài)的改變,可以將它們表示為0與l或表示為“高電位”、“低電位”,不管表示方法如何,目的在于造成“狀態(tài)的改變”,將很多的0與l組合成一大串的數(shù)字序列后,就可以定義它們所代表的意義了。傳輸過(guò)程就是在傳輸線上不斷地產(chǎn)生高低電位的變化,發(fā)送端造成傳輸線上的電位變化,而接收端則是解讀此高低電位變化而還原出原始的信息。2.2 RS232串行通信接口 串行通信端口在系統(tǒng)控制的范疇中一直占據(jù)了極其重要的地位,它不僅沒(méi)有因?yàn)闀r(shí)代的進(jìn)步而被淘汰,反而在規(guī)格上越來(lái)越完善,應(yīng)用也越來(lái)越廣泛。為了不同廠商的計(jì)算機(jī)和各種外圍設(shè)備串行連接

37、的需要,已經(jīng)制定了一些串行物理接口的標(biāo)準(zhǔn)。其中,最著名和廣泛采用的是EIA-RS-232C,現(xiàn)在,串行通信端口RS232是計(jì)算機(jī)上的標(biāo)準(zhǔn)配置,既可以用于計(jì)算機(jī)和設(shè)備之間近距離連接的直接通信,也可以用于連接調(diào)制解調(diào)器來(lái)進(jìn)行遠(yuǎn)距離的串行數(shù)據(jù)傳輸11。1. 物理接口特性EIA-RS-232C是由美國(guó)電子工業(yè)協(xié)會(huì)EIA制訂的一種串行物理接口標(biāo)準(zhǔn),EIA-RS-232C關(guān)于機(jī)械特性的要求,規(guī)定使用一個(gè)25針的標(biāo)準(zhǔn)連接器,對(duì)該連接器的尺寸及每個(gè)插針的排列位置等都有明確的規(guī)定。隨著使用的不斷發(fā)展,演化出9針接口的RS 232端口,計(jì)算機(jī)上通常配備COM1端口,即以9針腳引出的RS232通信端口。9針RS23

38、2端口引腳說(shuō)明。2. 電氣特性數(shù)字電路和計(jì)算機(jī)接口中大部分為5v的TTL或3.3v的CMOS電平,而RS-232的電平定義則不相同,它采用的是負(fù)邏輯。信號(hào)要被發(fā)送,一定要定義所謂的0或1的狀態(tài)。在RS-232的標(biāo)準(zhǔn)中,電壓在+3v+15v(一般使用+6V)之間稱(chēng)為0或Space,一般用途是作為011,電壓在-315v(一般使用-6v)之間稱(chēng)為1或Mark,一般用途是作為Off。有時(shí)候以High和Low更能表現(xiàn)出其實(shí)際狀態(tài)。表2.1 RS232端口引腳縮寫(xiě)功能說(shuō)明引腳(9針)信號(hào)類(lèi)型源類(lèi)型描述1CDDCE控制接收信號(hào)檢出,高電平有效。當(dāng)CD=1,表示已經(jīng)收到通信線路另一端Modem送來(lái)的信號(hào)。2

39、RDDCE控制將遠(yuǎn)程的串行數(shù)據(jù)接收進(jìn)來(lái)3TDDTE控制將計(jì)算機(jī)的數(shù)據(jù)發(fā)送出去4DTRDTE控制此引腳有計(jì)算機(jī)控制,當(dāng)DTR=1時(shí),表明可以傳輸數(shù)據(jù)。5GND控制接地端,信號(hào)地和保護(hù)地信號(hào)6DSRDCE控制數(shù)據(jù)裝置準(zhǔn)備準(zhǔn)備好,當(dāng)它為高電平時(shí),Modem將通知計(jì)算機(jī)準(zhǔn)備就緒,可以發(fā)送數(shù)據(jù)。7RTSDTE控制請(qǐng)求發(fā)送,用來(lái)表示DTE請(qǐng)求DCE發(fā)送數(shù)據(jù),當(dāng)它為高電平時(shí),計(jì)算機(jī)向Modem請(qǐng)求發(fā)送數(shù)據(jù)。8CTSDTE控制清除發(fā)送,用來(lái)表示DCE準(zhǔn)備好接收DTE發(fā)來(lái)的數(shù)據(jù),是對(duì)請(qǐng)求發(fā)送信號(hào)RTS的響應(yīng)信號(hào)。9RIDCE控制響鈴指示,RI=1時(shí),表明Modem收到了交換臺(tái)送來(lái)的振鈴信號(hào),用它來(lái)通知終端。2.

40、3 RS485串行通信接口由于串行通信的簡(jiǎn)單易用,使工業(yè)領(lǐng)域大量使用串行通信來(lái)進(jìn)行數(shù)據(jù)傳輸,可是工業(yè)環(huán)境通常會(huì)有噪聲干擾傳輸線路,在以RS 232進(jìn)行傳輸時(shí)經(jīng)常會(huì)受到外界的電氣干擾而使信號(hào)發(fā)生錯(cuò)誤,RS485串行通信標(biāo)準(zhǔn)就是為了解決這個(gè)問(wèn)題出現(xiàn)的。RS-485標(biāo)準(zhǔn)是RS-422標(biāo)準(zhǔn)的改進(jìn)增強(qiáng)版本,因其技術(shù)性能先進(jìn),得到了廣泛應(yīng)用。RS485不僅傳輸距離遠(yuǎn),通信可靠,而且使用單一+5V電源或+3V電源,邏輯電平與傳統(tǒng)的TTL兼容。此外,它對(duì)傳輸介質(zhì)沒(méi)有任何嚴(yán)格的要求,只需將普通雙絞線捆綁在一起即可簡(jiǎn)便地組成網(wǎng)絡(luò),除了點(diǎn)對(duì)點(diǎn)與廣播通信方式外,還具有多點(diǎn)通信方式。RS-485標(biāo)準(zhǔn)的共模電壓最大與最小

41、值為+12V、-7v,差分輸入電壓范圍為-7V+12V,接受器輸入靈敏度為200mV。其特點(diǎn)是抗干擾能力強(qiáng),傳輸速率高,距離遠(yuǎn)。在采用雙絞線,不使用MODEM的情況下,在l00Kb/s的傳輸速率時(shí),可以傳送1200m,若速率為9600b/s,則傳送距離可達(dá)1500m,它允許的最大速率為10Mb/s,傳輸距離為15m。RS485采用差分平衡輸入模式,對(duì)共模信號(hào)有極好的抑制能力。信號(hào)將被發(fā)送出去時(shí)先分成正負(fù)兩條線路,到達(dá)接收端之后,再將信號(hào)相減還原成原來(lái)的信號(hào),保證了與原始信號(hào)的一致性。使用RS485網(wǎng)絡(luò)可以有效的抑制噪聲信號(hào)干擾。也因?yàn)檫@種特性,此種串行通信方式比較適合工業(yè)上的應(yīng)用。2.4 其他

42、串行通信接口2.4.1 USB接口 由于時(shí)代的進(jìn)步,串行通信也朝向高速化發(fā)展。近年來(lái)個(gè)人計(jì)算機(jī)的快速發(fā)展,使串行通信技術(shù)發(fā)展出了通用串行總線(Universal Serial Bus,USB)接口。此種規(guī)格的目的在于集成一般計(jì)算機(jī)所使用的外圍設(shè)備連接方式,而且其所采用的信號(hào)傳輸方式也是串行通信。到目前為止,USB接口已經(jīng)有兩種規(guī)范:1996年1月推出的標(biāo)準(zhǔn)版本,最高傳輸速率為12Mb/s;1998年9月又推出版本,全面修改了版本2000年4月推出高速的,數(shù)據(jù)傳輸速率可達(dá)480Mb/s。當(dāng)前低速是指15Mb/s以下,15Mb/s以上至12Mb/s的設(shè)備稱(chēng)為全速設(shè)備。USB總線由VBUS(USB電

43、源)、D+(數(shù)據(jù))、D-(數(shù)據(jù))和GND(USB地)4根線組成,用于傳送信號(hào)和提供電源,線纜的最大長(zhǎng)度不超過(guò)5m。按照標(biāo)準(zhǔn),USB的標(biāo)準(zhǔn)脈沖時(shí)鐘頻率為12MHz,而其總線脈沖時(shí)鐘為1ms(1kHz),即每隔1ms,USB設(shè)備應(yīng)為USB總線產(chǎn)生1個(gè)時(shí)鐘脈沖序列,這個(gè)脈沖序列稱(chēng)為幀開(kāi)始數(shù)據(jù)包(SOF)。高速外設(shè)長(zhǎng)度為每幀12Kbit,而低速外設(shè)長(zhǎng)度為每幀,1個(gè)USB數(shù)據(jù)包可包含0-1023字節(jié)數(shù)據(jù),每個(gè)數(shù)據(jù)包的傳送都以1個(gè)同步字段開(kāi)始。USB主控制器時(shí)鐘產(chǎn)生每幀1ms的時(shí)間片,它是通過(guò)以1ms的間隔發(fā)送幀開(kāi)始(SOF)的方法來(lái)建立幀的。SOF令牌是一個(gè)幀周期內(nèi)第一個(gè)被傳輸?shù)膬?nèi)容,在發(fā)送一個(gè)SOF令

44、牌之后,幀周期所剩余的時(shí)間內(nèi),主控制器可以自由地發(fā)送其他處理操作。當(dāng)主控制器處于正常工作狀態(tài)時(shí),不管有沒(méi)有其他的總線操作,SOF令牌必須以1ms的周期連續(xù)產(chǎn)生。如果主控制器進(jìn)入了一個(gè)它不能在總線上提供電源供應(yīng)的狀態(tài),它就不能產(chǎn)生SOF,而且,如果主控制器不再生成SOF,它可以進(jìn)入一個(gè)低功耗狀態(tài)。SOF令牌具有訪問(wèn)總線的最高優(yōu)先權(quán),集線器中的串?dāng)_電路在幀結(jié)束(EOF)期間,從電氣上對(duì)任意一個(gè)有效的發(fā)送器進(jìn)行隔離,為SOF的傳輸提供一條空閑的總線。主機(jī)在每一個(gè)SOF令牌傳輸中會(huì)傳送當(dāng)前幀標(biāo)號(hào)的低11bit,當(dāng)主控制器發(fā)出請(qǐng)求時(shí),當(dāng)前的幀標(biāo)號(hào)就是在該請(qǐng)求完成時(shí)已經(jīng)存在的幀標(biāo)號(hào)由主機(jī)(主控制器或HCD

45、)所返回的當(dāng)前幀標(biāo)號(hào)至少為32bit,主控制器自身并不需要保留超過(guò)11bit的標(biāo)號(hào)。在EOF期間,主控制器可以停止傳輸。當(dāng)EOF間隔開(kāi)始時(shí),專(zhuān)門(mén)為剛剛通過(guò)的那一幀所安排的任一處理操作都會(huì)被重試。如果在遇到一個(gè)EOF時(shí)間問(wèn)隔時(shí)。主控制器正在執(zhí)行一項(xiàng)處理操作,它將中止該項(xiàng)處理。2.4.2 IEEE-1394IEEE-1394(也稱(chēng)為FireWire,火線)也是一種高性能的串行總線標(biāo)準(zhǔn),它與USB一樣擁有PnP(即插即用)功能,也是用于解決計(jì)算機(jī)與外圍設(shè)備復(fù)雜的連接問(wèn)題,同樣具有容易使用與高速等特點(diǎn),并且也是使用串行通信的傳輸方式。IEEE-1394特別適用于高速傳輸?shù)沫h(huán)境,現(xiàn)在已經(jīng)達(dá)到的速度是40

46、0Mbps,下一個(gè)版本中將達(dá)到1000Mbps,最多可以串接63個(gè)外圍設(shè)備,可以提供異步和同步兩種傳輸模式。IEEE-1394和USB有很多相似之處,它一共使用6條線纜,其中兩條線是直流供給線,電壓范圍840V,電流最大為。還有兩對(duì)雙絞線作為信號(hào)線:一對(duì)是差模時(shí)鐘線,另一對(duì)是差模數(shù)據(jù)線。其設(shè)備連接也是很方便的,支持熱插拔和即插即用,在增加或拆除后,IEEE-1394也會(huì)自動(dòng)調(diào)整拓?fù)浣Y(jié)構(gòu),重設(shè)整個(gè)外圍設(shè)備的網(wǎng)絡(luò)狀態(tài)。IEEE-1394的標(biāo)準(zhǔn)開(kāi)始是IEEE-l394-1995,后來(lái)發(fā)展成為IEEE-1394a-2000,目前實(shí)際使用的為1394a,數(shù)據(jù)傳輸速率有三檔:l00Mb/s,200Mb/s

47、,400Mb/s。IEEE-1394a又有升級(jí)版本lEEE-1394b-2002,它的速率為800Mb/s,和32Gb/s因?yàn)樗鼈兊耐ㄐ艆f(xié)議和管理機(jī)制與USB不同,IEEE-1394設(shè)備的自動(dòng)配置不需要主機(jī)的干預(yù)。 第3章 串行通信協(xié)議 在串行通信過(guò)程中,數(shù)據(jù)和聯(lián)絡(luò)信號(hào)時(shí)使用同一根信號(hào)線來(lái)傳送的,所以收發(fā)雙方必須考慮解決一下問(wèn)題:1)雙方約定以何種速率進(jìn)行數(shù)據(jù)的發(fā)送和接收(波特率);2)約定采用何種數(shù)據(jù)格式(幀格式),如果包含控制信息,那么它的定義是什么;3)接收方如何得知一批數(shù)據(jù)的開(kāi)始和結(jié)束(幀同步);4)接收方如何從位流中正確地采樣到位數(shù)據(jù)(位同步);5)接收方如何判斷收到數(shù)據(jù)的正確性(數(shù)

48、據(jù)校驗(yàn));6)收發(fā)出錯(cuò)時(shí)如何進(jìn)行處理。顯然,收發(fā)雙方必須遵守一些共同的通信協(xié)議5(或稱(chēng)為通信控制規(guī)程),才能解決以上問(wèn)題。在傳輸數(shù)字信號(hào)時(shí)接收端必須有與數(shù)據(jù)位脈沖具有相同頻率的時(shí)鐘脈沖來(lái)逐位將數(shù)據(jù)讀入寄存器,這種在接收端使數(shù)據(jù)位與時(shí)鐘脈沖在頻率和相位上保持一致的機(jī)制稱(chēng)為同步。根據(jù)在接收端獲取同步信號(hào)的方法不同,同步方式可分為位同步方式和字符同步方式,也稱(chēng)為同步傳輸方式和異步傳輸方式。3.1同步通信 同步通信即位同步方式,同步通信即位同步方式,是利用編碼機(jī)制把時(shí)鐘信息和數(shù)據(jù)放在一起發(fā)送給接收端,以保證每一位的正確性,但這種同步方式?jīng)]有辦法來(lái)區(qū)分字符之間的界限,從一個(gè)二進(jìn)制位串中提取正確的字符信息

49、。為此,在位同步的基礎(chǔ)上,需要發(fā)送方在一組數(shù)據(jù)前附加一個(gè)或兩個(gè)稱(chēng)為同步字符的特殊約定代碼,去通知接收器串行數(shù)據(jù)第一位到達(dá)的時(shí)間。為了確保正確提取字符,字符之間不能有類(lèi)似于異步傳輸那樣的間隙,必須以連續(xù)的形式發(fā)送,每個(gè)時(shí)鐘周期發(fā)送一位數(shù)據(jù),數(shù)據(jù)信息后是兩個(gè)錯(cuò)誤校驗(yàn)字符。接收方在收到同步字符后,立即開(kāi)始按事先約定的長(zhǎng)度(5、6、7或者8位)從位串中逐個(gè)提出字符。同步通信采用的同步手段和同步字符的個(gè)數(shù)不同,字符的數(shù)據(jù)格式叫做單同步數(shù)據(jù)格式,數(shù)據(jù)格式。存在著不同的格式結(jié)構(gòu),具有一個(gè)同步有兩個(gè)同步字符的數(shù)據(jù)格式叫做雙同步異步通信中按字符成幀(從起始位到停止位)進(jìn)行傳送,而同步傳送則采用數(shù)據(jù)塊或幀進(jìn)行傳送

50、6。圖中所示為某同步協(xié)議的幀格式,在幀開(kāi)頭有同步字符SYNC,同步字符的格式和個(gè)數(shù)根據(jù)需要確定,其作用是通知接收器“消息到達(dá)”,并且接收器和發(fā)送器需要開(kāi)始同步。同步字符后的第一個(gè)數(shù)據(jù)是消息頭或稱(chēng)為報(bào)頭,它包含有助于接收器如何處理后續(xù)數(shù)據(jù)的控制信息,如一幀內(nèi)的字符計(jì)數(shù)等,再以后是以字符或者比特為單位的消息編碼,也稱(chēng)為報(bào)文,最后是校驗(yàn)字符,常用CRC循環(huán)冗余校驗(yàn)碼,校驗(yàn)字的作用是檢測(cè)整個(gè)數(shù)據(jù)塊在傳送過(guò)程中是否有差錯(cuò)。表3.1給出了同步通信協(xié)議的幀格式。表3.1 同步通信協(xié)議的幀格式SYNCSYNCSYNC頭數(shù)據(jù)(0或者更多字節(jié))CRCSYNC同步通信的數(shù)據(jù)傳輸效率較異步通信高,傳輸速率也較高但是同

51、步傳送不僅要保持每個(gè)數(shù)據(jù)字符內(nèi)各位以預(yù)定的固定時(shí)鐘頻率傳送,而且還要求整個(gè)數(shù)據(jù)塊內(nèi)的位都按照預(yù)定的固定時(shí)鐘頻率傳送,此外數(shù)據(jù)塊之間不允許有間隙,若有間隙必須用同步字符填充。收發(fā)雙方時(shí)鐘嚴(yán)格同步是同步通信的基本要求,在技術(shù)上,這種要求必須用硬件從接收到的數(shù)據(jù)中分離出同步時(shí)鐘來(lái)實(shí)現(xiàn),所以硬件電路復(fù)雜是同步通信的缺點(diǎn)。異步通信串行異步通信即異步傳輸方式是以字符為單位進(jìn)行傳輸,其通信協(xié)議是起止式異步通信協(xié)議。一個(gè)字符正式發(fā)送之前,先發(fā)送一個(gè)起始位,寬度為1位的低電平;結(jié)束時(shí)發(fā)送一個(gè)寬度為l位,15位或者2位的高電平作為停止位;數(shù)據(jù)位為5-8位,可在數(shù)據(jù)位內(nèi)設(shè)1位奇偶校驗(yàn)位,字符之間可以有空閑位,它們都

52、是高電平。異步傳輸過(guò)程中的起始位和停止位起著重要的作用:起始位標(biāo)志著每一個(gè)字符的開(kāi)始,停止位標(biāo)志著每一個(gè)字符的結(jié)束。由于串行通信采用起始位為同步信號(hào),接收端總是在每個(gè)字符的頭部即起始位處進(jìn)行一次重新定位,保證每次采樣對(duì)應(yīng)一個(gè)數(shù)據(jù)位。所以異步傳送的發(fā)送器和接收器不必用同一個(gè)時(shí)鐘,而是各有自己的局部時(shí)鐘,只要同一標(biāo)稱(chēng)頻率即可。異步傳送以字符為單位,當(dāng)接收方收到起始位之后,只要在一個(gè)字符的傳輸時(shí)問(wèn)內(nèi)能和發(fā)送器保持同步,就能完成正確的接收。如果接收器和發(fā)送器的時(shí)鐘略有誤差,兩個(gè)字符之間的停止間隔將為這種誤差提供一種緩沖,因此,異步通信方式允許有一定的頻率漂移,一般發(fā)送器和接收器雙方各自用晶振產(chǎn)生時(shí)鐘即

53、可滿足要求,收發(fā)雙方系統(tǒng)時(shí)鐘的誤差容限為5對(duì)時(shí)鐘同步的要求不太嚴(yán)格,這是異步通信的突出優(yōu)點(diǎn),但是異步通信要求每個(gè)字符傳送都有起始位和停止位,因此控制信息至少占總信息的20,這部分的額外開(kāi)銷(xiāo)使得傳送效率相對(duì)比較低。3.3傳輸制式在串行通信中。按照同一時(shí)刻數(shù)據(jù)流的方向可分為三種基本傳送制式:?jiǎn)喂魉?,半雙工傳送和全雙工傳送7,如圖3.1所示。圖3.1 傳輸制式示意圖單工傳送僅支持在一個(gè)方向上的數(shù)據(jù)傳送。即由設(shè)備A傳送到設(shè)備B,在這種傳送模式中,A只作為發(fā)送器,B只作為接收器。半雙工傳送支持在設(shè)備A和設(shè)備B之間交替地傳送數(shù)據(jù)。設(shè)備A可以作為發(fā)送器發(fā)送數(shù)據(jù)到設(shè)備B,設(shè)備B作為接收器。也可以設(shè)備B作為發(fā)

54、送器發(fā)送數(shù)據(jù)到設(shè)備A,設(shè)備A為接收器。由于A、B之間僅有一根數(shù)據(jù)傳輸線,它們都有獨(dú)立的發(fā)送器和接收器,所以在同一個(gè)時(shí)刻只能進(jìn)行一個(gè)方向的傳送。全雙工傳送支持?jǐn)?shù)據(jù)在兩個(gè)方向同時(shí)傳送,即設(shè)備A可以發(fā)送數(shù)據(jù)到設(shè)備B,設(shè)備B也可以同時(shí)發(fā)送數(shù)據(jù)到設(shè)備A,它們都有獨(dú)立的發(fā)送器和接收器,并有兩條傳輸線。對(duì)于常用到的串行通信來(lái)說(shuō),可以利用的傳輸線路就決定了工作模式。RS232因?yàn)槠湟_設(shè)計(jì)時(shí)就是接收與發(fā)送采用兩個(gè)不同的引腳與線路,其信號(hào)標(biāo)準(zhǔn)電位是參考地線而得到的,兩條數(shù)據(jù)線路可以分別作為數(shù)據(jù)的傳送及接收,因此使用的是全雙工的模式,這種參考到地線而得到信號(hào)標(biāo)準(zhǔn)電位的傳輸方式稱(chēng)為單接點(diǎn)式輸入。RS485上的數(shù)據(jù)線

55、路雖然也有兩條,不過(guò)這兩條線路卻是一個(gè)信號(hào)標(biāo)準(zhǔn)電位的正負(fù)端,真正的信號(hào)必須是兩條線路的相減而得到。因此在一個(gè)時(shí)間點(diǎn)內(nèi),只可以有一個(gè)方向的數(shù)據(jù)在傳送,也就形成了半雙工的工作模式這種不參考地線而由兩條信號(hào)標(biāo)準(zhǔn)電位相減來(lái)得到實(shí)際信號(hào)標(biāo)準(zhǔn)電位的傳輸方式成為差動(dòng)式輸入。3.4硬件握手和軟件握手握手信號(hào)實(shí)際上是控制信號(hào),用來(lái)控制數(shù)據(jù)的傳輸。通過(guò)握手信號(hào),發(fā)送端可以得知接收端是否有數(shù)據(jù)要發(fā)送。接收端通過(guò)握手信號(hào)通知發(fā)送端它是否已經(jīng)準(zhǔn)備好了接收信號(hào)8。當(dāng)發(fā)送端和接收端處理數(shù)據(jù)的速度不一樣時(shí),可能就會(huì)造成數(shù)據(jù)丟失。在傳輸中,如果發(fā)送端的發(fā)送速度大于接收端的接收速度,同時(shí)若接收端處理數(shù)據(jù)的速度不夠快的話,那么接收

56、端的緩沖區(qū)必定在一定時(shí)間后溢出,從而造成以后發(fā)送過(guò)來(lái)的數(shù)據(jù)不能進(jìn)入緩沖區(qū)而丟失。發(fā)送端何時(shí)可以繼續(xù)發(fā)送數(shù)據(jù),何時(shí)必須暫停發(fā)送,從而讓接收端有時(shí)間處理數(shù)據(jù),稱(chēng)為流量控制,必須靠握手信號(hào)來(lái)解決這個(gè)問(wèn)題。3.4.1硬件握手 在硬件握手中,發(fā)送端通過(guò)將某一個(gè)導(dǎo)線拉到高電平或者低電平,來(lái)表示發(fā)送端可以發(fā)送數(shù)據(jù)。接收端已經(jīng)準(zhǔn)備好接收數(shù)據(jù)之后,也把某一個(gè)導(dǎo)線拉到高電平或者低電平,來(lái)通知發(fā)送端,發(fā)送端一直在檢測(cè)這個(gè)信號(hào)。接收端可以在任何時(shí)候把這個(gè)信號(hào)變?yōu)闊o(wú)效,甚至是在接收一個(gè)數(shù)據(jù)塊過(guò)程中。當(dāng)發(fā)送端檢測(cè)到這個(gè)信號(hào)變?yōu)闊o(wú)效之后,就必須停止本次發(fā)送。3.4.2軟件握手 在軟件握手中,以數(shù)據(jù)線上的數(shù)據(jù)信號(hào)來(lái)代替實(shí)際的

57、硬件電路。這種方法用在直接連接或者通過(guò)調(diào)制解調(diào)器連接的兩臺(tái)計(jì)算機(jī)之間進(jìn)行雙向通信的場(chǎng)合。對(duì)于軟件握手現(xiàn)在已經(jīng)建立了一些標(biāo)準(zhǔn)協(xié)議,其中最常用的是XON/XOFF協(xié)議。3.5串行通信的基本參數(shù)串口的通信方式是將字節(jié)拆分成一個(gè)接著一個(gè)的位后再進(jìn)行傳輸。接到此電位信號(hào)的一方將此一個(gè)一個(gè)的位組合成原來(lái)的字節(jié),如此形成一個(gè)字節(jié)的完整傳輸。在傳輸進(jìn)行過(guò)程中,雙方明確傳輸信息的具體方式,否則雙方就會(huì)沒(méi)有一套共同的譯碼方式,從而無(wú)法了解對(duì)方所傳輸過(guò)來(lái)的信息的意義。因此雙方為了進(jìn)行通信規(guī)則,這個(gè)共同的規(guī)則就是串口的初始化9。串口的初始化必須對(duì)以下幾項(xiàng)參數(shù)進(jìn)行設(shè)置。 波特率串行通信的傳輸受到通信雙方設(shè)備性能及通信線

58、路的特性所控制,收發(fā)雙方必須按照同樣的速率進(jìn)行串行通信,即收發(fā)雙方采用同樣的波特率。我們通常將傳輸速度稱(chēng)為波特率,指的是串行通信中每秒所傳輸?shù)臄?shù)據(jù)位數(shù)。單位是“波特每秒”(bps)。國(guó)際上規(guī)定了標(biāo)準(zhǔn)波特率系列值,最常用的標(biāo)準(zhǔn)波特率有110,300,600。1200,2400,4800,9600和19200。在進(jìn)行串行通信時(shí),根據(jù)傳送的波特率來(lái)確定發(fā)送時(shí)鐘和接收時(shí)鐘的頻率。異步傳送過(guò)程中,每發(fā)送一位數(shù)據(jù)的時(shí)間長(zhǎng)度由發(fā)送時(shí)鐘決定,每接收一位數(shù)據(jù)的時(shí)間長(zhǎng)度由接收時(shí)鐘測(cè)定,它們和波特率有如下關(guān)系:時(shí)鐘頻率=n*波特率;式中n為波特率系數(shù)或者波特率因子,它的取值可以為l,16,32或64。數(shù)據(jù)的傳輸單位

59、一般串口所傳輸?shù)臄?shù)據(jù)時(shí)字符型,若用來(lái)傳輸文件,則會(huì)使用二進(jìn)制的數(shù)據(jù)形式。當(dāng)使用字符型時(shí),工業(yè)界使用到的ASCII字符及JIS字符;ASCII碼使用了8位形成一個(gè)字符,而JIS碼則以7位形成一個(gè)字符。歐美的設(shè)備多使用8位的字節(jié),而日本的設(shè)備多使用7位為一個(gè)字節(jié)。因此只要7位就可以將ASCII碼的0127碼表達(dá)出來(lái)(27=128,共有128種組合方式),所有的可見(jiàn)字符也在此范圍內(nèi),所以只要7個(gè)數(shù)據(jù)位就夠了。不同的情形下(根據(jù)所使用的協(xié)議),會(huì)使用到不同的傳輸單位。使用多少位合成一個(gè)字節(jié)必須先行確定。 起始位與停止位由于異步串行傳輸中沒(méi)有使用同步時(shí)鐘作為基準(zhǔn),因此接收端不知道發(fā)送端何時(shí)將進(jìn)行數(shù)據(jù)的傳

60、輸。而當(dāng)發(fā)送端準(zhǔn)備要開(kāi)始傳送數(shù)據(jù)時(shí),發(fā)送端會(huì)在所送出的字符前后分別加上高電位的起始位(邏輯0)及低電位的停止位(邏輯1),它們稱(chēng)為起始位和停止位。當(dāng)發(fā)送端要開(kāi)始傳送數(shù)據(jù)時(shí),便將傳輸線上的電壓由低電位提升至高電位,而當(dāng)傳送結(jié)束后,再將電壓降至低電位。接收端會(huì)因?yàn)槠鹗嘉坏挠|發(fā)(因電壓由低電位升至高電位)而開(kāi)始接收數(shù)據(jù),并因停止位的通知(因電壓維持在低電位)而確切知道數(shù)據(jù)的字符信號(hào)已經(jīng)結(jié)束。加入了起始位及停止位也比較容易達(dá)到多字符的接收能力,起始位固定為一位,而停止位則有1、1.5、2位等多種選擇,由通信雙方共同遵守的通信協(xié)議來(lái)控制和識(shí)別。 校驗(yàn)位為了防止傳輸過(guò)程中的干擾造成數(shù)據(jù)錯(cuò)誤,數(shù)據(jù)幀中可以加

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論