




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計(論文)題 目 姓 名 學(xué) 號 專業(yè)班級 所在學(xué)院 指導(dǎo)教師(職稱) 二一 年 五 月 十 日智能串口調(diào)試軟件【摘要】 串行通信是一種廣泛使用且實用的通信方式,在控制類應(yīng)用中相當(dāng)普遍,.NET Framework2.0類庫中的SerialPort類為串行通信提供了強大的工具。本文詳細(xì)介紹了串口的工作原理和通信協(xié)議等串行通信相關(guān)的基本知識,分析了串口通信程序的設(shè)計思路,闡述了在Visual Studio 2005編程環(huán)境下串口調(diào)試軟件的具體實現(xiàn)方法。探討了如何利用C# SerialPort類進(jìn)行串行通信程序的設(shè)計,分析了C#串行類的應(yīng)用特點,證明了采用C#SerialPort類可以使串行
2、通信程序設(shè)計具有更大的靈活性,可以提高串口傳輸數(shù)據(jù)的可靠性。實際運行結(jié)果表明這種編程方法穩(wěn)定、可靠,實用性強。 【關(guān)鍵詞】 串行通信,串口調(diào)試,SerialPort類 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 實際工作中存在的問題 PAGEREF _Toc261473331 h 3 HYPERLINK l _Toc261473332 課題研究的目的 PAGEREF _Toc261473332 h 4 HYPERLINK l _Toc261473333 課題的主要研究內(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 信號定義 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 校驗位 PAGEREF _Toc261473354 h 17 HYPERLINK
12、l _Toc261473355 第4章 串口通信程序設(shè)計方法研究 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類 PAGEREF _Toc261473359 h 21 HYPERLINK l _Toc261473360 串行通信SerialPort類 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)試軟件的實現(xiàn) PAGEREF
14、 _Toc261473363 h 27 HYPERLINK l _Toc261473364 開發(fā)語言和開發(fā)環(huán)境簡介 PAGEREF _Toc261473364 h 27 HYPERLINK l _Toc261473365 5.1.1 C#語言和.NET Framework PAGEREF _Toc261473365 h 27 HYPERLINK l _Toc261473366 5.1.2 Visual Studio 2005 簡介 PAGEREF _Toc261473366 h 28 HYPERLINK l _Toc261473367 串口調(diào)試軟件的實現(xiàn) PAGEREF _Toc2614733
15、67 h 29 HYPERLINK l _Toc261473368 串口調(diào)試軟件的編程實現(xiàn)過程 PAGEREF _Toc261473368 h 29 HYPERLINK l _Toc261473369 串口調(diào)試軟件界面的設(shè)計 PAGEREF _Toc261473369 h 30 HYPERLINK l _Toc261473370 5.2.3 串口調(diào)試軟件的測試 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端口引腳縮寫功能說明 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è)社會中,隨著電子產(chǎn)業(yè)的迅猛發(fā)展,電子技術(shù)與傳統(tǒng)工業(yè)相結(jié)合的機電一體化技術(shù)在現(xiàn)代工業(yè)中占據(jù)著越來越大的主導(dǎo)地位。各種各樣的單片機,微處理器無處不在的發(fā)揮著巨大的作用。它就像是人的大腦一樣,精確的指揮著每一部機器、每一臺設(shè)備的運作,可以說,電子芯片的出現(xiàn)直接影響了工業(yè)社會的進(jìn)程,是工業(yè)現(xiàn)代化的重要里程碑。不僅如此,就在人們的日常生活中,電子技術(shù)帶來的影響也是翻天覆地的,以至于我們無時無刻的在與電子芯片打交道,試想一下,如果我們失去了電子芯片,我們
19、退回到的應(yīng)該不僅是農(nóng)業(yè)社會,而是石器時代了。探討單片機、微處理器能夠發(fā)揮巨大作用的機理,就是它可以將外界的指令輸入到自身內(nèi)部,經(jīng)過計算,轉(zhuǎn)換成控制信息傳送給外界。因此,數(shù)據(jù)的交流是單片機、微處理器工作的重要意義所在,而串口則是單片機、微處理器內(nèi)部擔(dān)負(fù)數(shù)據(jù)傳送任務(wù)的重要部件之一1。串口叫做串行接口,也稱串行通信接口,是計算機的一種應(yīng)用廣泛的接口,幾乎在每種操作系統(tǒng)以及需要進(jìn)行數(shù)據(jù)傳送的裝置上都支持串口操作。串口也廣泛用于各行各業(yè)的各種設(shè)備中,如船舶中設(shè)備的互相通訊, 醫(yī)院驗血、驗?zāi)虻雀鞣N化驗設(shè)備、工業(yè)控制中上位機與8031或8051、PLC等的通訊。隨著人類社會的進(jìn)步與科學(xué)技術(shù)的發(fā)展,計算機技術(shù)
20、在民用和工業(yè)控制領(lǐng)域的作用越來越顯示出其魅力,特別是串行通信技術(shù)在通訊領(lǐng)域被廣泛應(yīng)用。標(biāo)準(zhǔn)的RS232接口已成為計算機、外設(shè)、交換機和許多通訊設(shè)備的標(biāo)準(zhǔn)接口。雖然近年來隨著USB口的日趨流行,RS232接口作為一種傳統(tǒng)的串行通信接口有被取代的趨勢。然而由于它具有較高的性價比和傳輸?shù)目煽啃裕趥鬏斔俾室蟛皇呛芨叩那闆r下,串口通信仍然具有其自身的優(yōu)勢,是在計算機與計算機之間或者計算機與外設(shè)之間傳送數(shù)據(jù)的常用方法。由于串口通信使用計算機的內(nèi)建串口,用戶無需再購買任何特殊硬件,只要一根串口線就可以達(dá)到發(fā)送或者接收數(shù)據(jù)的目的,而且不失測試的準(zhǔn)確性。采用RS485接口標(biāo)準(zhǔn)可以實現(xiàn)更遠(yuǎn)的傳輸距離、更強的抗
21、干擾能力和更快的傳輸速率。所以串口通信現(xiàn)在仍然廣泛應(yīng)用于數(shù)據(jù)采集、監(jiān)測監(jiān)控以及儀表控制等場合。串口通信的廣泛應(yīng)用決定了串口調(diào)試軟件開發(fā)的必要性,而且為了保證各設(shè)備間的正常通訊以及讓計算機控制、管理這些設(shè)備并與它們交換數(shù)據(jù),串口的調(diào)試和相關(guān)的串口調(diào)試軟件的開發(fā)也是實際應(yīng)用中所必須的。課題研究的目的和意義現(xiàn)在的產(chǎn)品若要自動化,一定要提供通道與計算機進(jìn)行通信,而最簡單的方式就是在產(chǎn)品內(nèi)部少上一顆單芯片,利用單芯片上的串行通信功能進(jìn)行自動化的工作,由于計算機中的串口是必備的通道,且以價格及技術(shù)上來說是最能被廠商所接受的,因此,市面上很多自動化產(chǎn)品也都加上了串行通信的功能,從而擴大產(chǎn)品的使用領(lǐng)域,使實現(xiàn)
22、技術(shù)變得簡單化。與任何一個自動化設(shè)備進(jìn)行聯(lián)機,最好是先對該系統(tǒng)的通信功能先進(jìn)行測試。通過串行通信的控制,通??梢詫a(chǎn)品內(nèi)部開放的功能做一個先期的測試工作,確定沒有問題了,然后再對系統(tǒng)進(jìn)行程序的實現(xiàn),這是一個比較保險的做法,免得在系統(tǒng)設(shè)計到設(shè)計到一半的時候發(fā)現(xiàn)最重要的通信功能有問題,浪費了大量的寶貴時間。串口調(diào)試軟件的發(fā)展現(xiàn)狀 在自動控制領(lǐng)域,經(jīng)常要實現(xiàn)上位機和下位機之間的通信,串口通信是上、下位機常用的通信手段。串口通信已經(jīng)在控制類應(yīng)用中相當(dāng)普遍,串口調(diào)試軟件為串口的調(diào)試帶來了極大方便。目前在國內(nèi)外也有許多的串口調(diào)試軟件,這些軟件各有特點,有些操作簡單方便,但功能也許有所欠缺,比較適應(yīng)入門級的
23、人,也有功能比較強大操作比較復(fù)雜的適合專業(yè)人員使用的軟件,總的來說目前常用的智能串口調(diào)試軟件主要:串口調(diào)試軟件SSCOM、串口調(diào)試助手和BOAST串口調(diào)試工具等。1. 串口調(diào)試軟件SSCOM 串口調(diào)試軟件SSCOM是一個功能較強的串口調(diào)試軟件2,它可以在Win95/98、Win2000、WinNT、WinXP 系統(tǒng)下運行,該軟件主要特點有:接收從串口進(jìn)來的數(shù)據(jù)并在窗口顯示;所接收到的數(shù)據(jù)的顯示方式可以選擇為字符方式或者HEX方式;串口波特率可以選擇為110bps-256000bps;可以即時顯示存在的串口號;可以在字符串輸入框輸入想要發(fā)送的字符串,字符串輸入框可以輸入HEX數(shù)據(jù)串進(jìn)行發(fā)送,數(shù)據(jù)
24、的值從00到FF,沒有任何限制;可以打開一個文本文件和一個二進(jìn)制文件并以當(dāng)前的波特率發(fā)送到串口;可以保存窗口內(nèi)容到一個文本文件,文件名取自當(dāng)前時間,保存在當(dāng)前目錄。2. 串口調(diào)試助手 串口調(diào)試助手(SComAssistant)是一個功能比較全面而又小巧的串口調(diào)試軟件3,它支持常用的300-115200bps波特率,能設(shè)置校驗、數(shù)據(jù)位和停止位,能以ASCII碼或十六進(jìn)制接收或發(fā)送任何數(shù)據(jù)或字符(包括中文),可以任意設(shè)定自動發(fā)送周期,并能將接收數(shù)據(jù)保存成文本文件,能發(fā)送任意大小的文本文件。串口調(diào)試助手是一個非常不錯的串口調(diào)試軟件,但是對于在單片機開發(fā)過程中常會用到的hex和bin文件,串口調(diào)試助手
25、不能正確發(fā)送。3. BOAST串口調(diào)試工具 BOAST串口調(diào)試工具可以作為通用的串口調(diào)試工具,也可以作為以BOAST為首的,國內(nèi)數(shù)字稱重傳感器通訊調(diào)試工具。該軟件作者在上位機軟件開發(fā)過程中,根據(jù)自己的實際需要編寫了這款工具軟件。為串口通訊調(diào)試帶來了方便。軟件編寫過程中,參考SSCOM的幾項典型功能,并作了一些改進(jìn)。該軟件為綠色、免安裝、完全免費軟件。主要功能有:自動搜索串口,并打開串口;接收數(shù)據(jù)可以進(jìn)行十六進(jìn)制和ASCII切換;接收數(shù)據(jù)時,光標(biāo)始終顯示在最后一行等。實際工作中存在的問題 自動化設(shè)備在各個行業(yè)都得到了普遍的應(yīng)用,隨著計算機分析控制技術(shù)的發(fā)展,作為生產(chǎn)設(shè)備中最主要的串行通信得到了廣
26、泛的應(yīng)用,設(shè)備與計算機間的各種通信協(xié)議也層出不窮,但是,由于沒有相關(guān)的技術(shù)標(biāo)準(zhǔn),不同公司各自建立自己的設(shè)備通信標(biāo)準(zhǔn),目前,各種設(shè)備的生產(chǎn)數(shù)據(jù)格式不統(tǒng)一、各自獨立,因此無法對大量設(shè)備的生產(chǎn)和通信數(shù)據(jù)進(jìn)行有效和統(tǒng)一的管理,也無法通過先進(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ù)資料,另外,由于市場變化的原因,很多設(shè)備附帶的技術(shù)資料已經(jīng)無法查找,因此,想充分利用這些設(shè)備進(jìn)行二次開發(fā)或者自行編制數(shù)據(jù)處理程序收集數(shù)據(jù)變得非常困難,造成大量設(shè)備不能
27、充分開發(fā)利用甚至完全不能滿足實際使用環(huán)境的需要。出于各種技術(shù)和商業(yè)上的考慮,為多個不同設(shè)備提供通信協(xié)議的解析和建立通用的數(shù)據(jù)接口管理軟件等工作進(jìn)展緩慢。一般只有由多種設(shè)備的用戶來進(jìn)行相關(guān)的二次開發(fā)工作,來適應(yīng)自己企業(yè)的生產(chǎn)需求。 沒有相關(guān)的技術(shù)標(biāo)準(zhǔn)特別是設(shè)備通信標(biāo)準(zhǔn),各種設(shè)備之間存在的不同通信協(xié)議和接口模塊,既不利于進(jìn)行統(tǒng)一分析和管理,也不利串行通信的調(diào)試工作。雖然都是利用計算機進(jìn)行數(shù)據(jù)交換的測試,但由于這些設(shè)備的生產(chǎn)廠家不同,所使用的通信接口和通信協(xié)議也都不同,因此,在具體測試這些設(shè)備時操作人員不僅需要熟悉這些設(shè)備的現(xiàn)場使用方法,而且還要分別能夠使用各自的調(diào)試軟件進(jìn)行不同操作方式的數(shù)據(jù)通信傳
28、輸和數(shù)據(jù)綜合分析,給使用帶來了很大的麻煩。目前,由于串行通信數(shù)據(jù)鏈路層協(xié)議林林總總不可勝數(shù),難以逐一進(jìn)行分析,這也給串口調(diào)試軟件設(shè)計帶來一定的困擾,現(xiàn)在設(shè)計串口調(diào)試軟件時都是基于某種具體的通信協(xié)議,根據(jù)設(shè)備的實際情況來進(jìn)行設(shè)計的,還沒有一種可以仿真串行通信中幾乎所有情況的軟件。因此,對于串口調(diào)試軟件設(shè)計方面的工作需要作進(jìn)一步地研究。1.2.3課題研究的目的在嵌入式硬件系統(tǒng)中,串口是一個非常重要的硬件組成部分。嵌入式硬件系統(tǒng)通過串口可以與上位機(如計算機,工控機等)進(jìn)行連接,從而實現(xiàn)上位機和下位嵌入式系統(tǒng)之間的通信,完成數(shù)據(jù)交換、參數(shù)設(shè)置,組網(wǎng)等功能。調(diào)試就是定位程序中的錯誤并修正其錯誤的過程4
29、,在軟件開發(fā)環(huán)境中,測試工具可以說是衡量開發(fā)環(huán)境優(yōu)劣的重要因素。在嵌入式系統(tǒng)軟件開發(fā)環(huán)境中,調(diào)試尤其顯其重要性,因為開發(fā)者所面對的硬件往往就一塊裸板,沒有輸入輸出設(shè)備,操作和應(yīng)用也往往是綁定在一起的,如何“導(dǎo)出”調(diào)試信息也是軟硬件開發(fā)者必須考慮的一個問題。最早期的調(diào)試方法基本上采取的是“crash and burn”的方式,即把編譯好的目標(biāo)代碼“燒”到目標(biāo)板上,讓它跑起來,如果未得到預(yù)期結(jié)果,仔細(xì)檢查源代碼,猜測出問題可能出現(xiàn)的地方,嘗試修改源代碼,再重新“燒”到目標(biāo)板上,再運行,一直重復(fù)這個過程,直到結(jié)果正確為止。使用這種方法,猶如在暗室中維修精密儀器,可想而知程序調(diào)試的難度有多大。為了方便
30、嵌入式系統(tǒng)中代碼的調(diào)試,在硬件上,出現(xiàn)了各式各樣的具有調(diào)試功能的調(diào)試板。如增加了串口、并口,網(wǎng)口使之通過串、并口線或網(wǎng)線并借助另外一臺有輸入輸出設(shè)備的計算機對目標(biāo)板上的軟件進(jìn)行調(diào)試和控制。在軟件上,可以利用串口調(diào)試軟件直觀的測試通信協(xié)議,參數(shù)等。為了能夠提高操作人員的工作效率,以及能夠記錄歷史工作數(shù)據(jù),并利用這些數(shù)據(jù)進(jìn)行計算機的智能分析和管理,我們不僅需要將這些設(shè)備的數(shù)據(jù)收集起來進(jìn)行分析,而且該系統(tǒng)有一個智能的通信接口,能夠與所有這些現(xiàn)場設(shè)備進(jìn)行通信,以收集現(xiàn)場采集的測試數(shù)據(jù)。操作人員只需要掌握串口調(diào)試軟件的使用方法,就可以對所有生產(chǎn)設(shè)備的數(shù)據(jù)進(jìn)行傳輸、管理和分析操作。隨著串口應(yīng)用領(lǐng)域越來越廣
31、泛,運用的復(fù)雜程度也越來越高,實際應(yīng)用中對串口通信的調(diào)試要求也越來越高。本課題的目的在于深入剖析不同設(shè)備和它們與上位機之間通信時采用的傳輸協(xié)議,在這一基礎(chǔ)上,為整個系統(tǒng)與計算機之間的通信編寫驅(qū)動程序。期望能通過對多種設(shè)備和協(xié)議的研究,分析和比較不同系統(tǒng)通信的長處和不足,并建立一種相對比較完善的生產(chǎn)設(shè)備串行通信協(xié)議,編寫對所研究的大多數(shù)設(shè)備適用的串口調(diào)試程序,使該程序盡可能的能夠仿真串行通信中的所有情況。 1.3課題的主要研究內(nèi)容本課題旨在研究串口的工作原理以及串口調(diào)試的實現(xiàn)算法,并介紹以一些常用的串口調(diào)試軟件,比較它們的優(yōu)缺點,再在Visual Studio 2005環(huán)境中使用C#語言編寫完成
32、一個串口調(diào)試程序的設(shè)計。本設(shè)計是在WINDOWS XP操作系統(tǒng)下,設(shè)計自己的通信協(xié)議,借助C#語言編程環(huán)境,使用C#serialport類,實現(xiàn)串口通信。論文一共有六個章節(jié)組成:第一章序論,介紹了課題研究的背景,串口調(diào)試軟件發(fā)展現(xiàn)狀以及其中存在的問題,提出本課題的研究目的和意義。第二章串行通信接口,介紹了串口的分類以及串口的工作原理。第三章串行通信協(xié)議,介紹了串行通信的實現(xiàn)過程及標(biāo)準(zhǔn),串行通信技術(shù)的原理和規(guī)范。第四章串口通信程序設(shè)計研究,主要介紹串行通信驅(qū)動程序設(shè)計的方法,通過串行通信SerialPort類的研究及相關(guān)串行通信組建的建立,學(xué)習(xí)串行通信驅(qū)動程序設(shè)計的方法。第五章串口調(diào)試軟件的實現(xiàn)
33、,介紹了串口調(diào)試軟件的開發(fā)語言和開發(fā)環(huán)境,闡述了在Visual Studio 2005編程環(huán)境下串口調(diào)試軟件的具體實現(xiàn)方法。最后是結(jié)論,對課題研究工作和論文的總結(jié)和評價,以及對后續(xù)工作的展望。第2章 串行通信接口 串行通信接口定義串行總線是一種久遠(yuǎn)但目前仍常用的通信方式,早期的儀器、單片機、PLC等均使用串口是計算機進(jìn)行通信,最初多用于數(shù)據(jù)通信上,但隨著工業(yè)測控行業(yè)的發(fā)展,許多測量儀器都帶有串口總線接口,因此了解掌握串口通信技術(shù)及其編程是非常有必要的10。串行通信接口,按電氣標(biāo)準(zhǔn)及協(xié)議來分包括:RS232、RS422、RS485,USB等。RS232、RS422與RS485標(biāo)準(zhǔn)只對接口的電氣特
34、性做出決定,不涉及插件、電纜或協(xié)議。USB是近幾年發(fā)展起來的新型接口標(biāo)準(zhǔn),主要應(yīng)用于高速數(shù)據(jù)傳輸領(lǐng)域。串口的技術(shù)簡單成熟、性能可靠、價格低廉,所以要求的軟硬件環(huán)境或者條件都很低,廣泛應(yīng)用與計算機及相關(guān)領(lǐng)域,遍及調(diào)制解調(diào)器、串行打印機、各種監(jiān)控模塊、PLC、數(shù)控機床、單片機及相關(guān)智能設(shè)備,甚至路由器也不例外(通過串口設(shè)置參數(shù))。2.1.1數(shù)據(jù)發(fā)送 通信的主要目的是將數(shù)據(jù)從一端發(fā)送到另一端,以實現(xiàn)數(shù)據(jù)的交換。計算機與設(shè)備問的數(shù)據(jù)交換,計算機與計算機問的數(shù)據(jù)傳輸都屬于通信的范疇。 一個完整的通信系統(tǒng)包括發(fā)送端、接收端、轉(zhuǎn)換數(shù)據(jù)的接口及發(fā)送數(shù)據(jù)的實際信道或媒質(zhì)。一般情況下,發(fā)送與接收的節(jié)點稱為DTE(
35、Data Terminal Equipment,數(shù)據(jù)終端設(shè)備)。數(shù)據(jù)在到達(dá)正確目的地之前,可能需要經(jīng)過一系列中間節(jié)點,它們負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)送工作,以送達(dá)目的地,這些中間節(jié)點稱為DSE(Data Switching Equipment,數(shù)據(jù)交換設(shè)備)。終端設(shè)備發(fā)送數(shù)據(jù)時,必須先將數(shù)據(jù)轉(zhuǎn)換為電氣信號,以便在線路上傳遞,而負(fù)責(zé)數(shù)據(jù)與電氣信號轉(zhuǎn)換的設(shè)備稱為DCE(Data Communication Equipment,數(shù)據(jù)通信設(shè)備)。DTE與DCE間的數(shù)據(jù)傳輸線路通常使用RS232串行通信,而DCE與DSE間的媒質(zhì)則包括了雙絞線、同軸電纜、光纖或無線電等。2.1.2信號定義在計算機內(nèi)部的記錄中所有的數(shù)據(jù)
36、都是0與l,任何數(shù)據(jù)都是這兩個數(shù)字的組合。所有電子儀器的基礎(chǔ)均來自“開”、“關(guān)”兩個狀態(tài)的改變,可以將它們表示為0與l或表示為“高電位”、“低電位”,不管表示方法如何,目的在于造成“狀態(tài)的改變”,將很多的0與l組合成一大串的數(shù)字序列后,就可以定義它們所代表的意義了。傳輸過程就是在傳輸線上不斷地產(chǎn)生高低電位的變化,發(fā)送端造成傳輸線上的電位變化,而接收端則是解讀此高低電位變化而還原出原始的信息。2.2 RS232串行通信接口 串行通信端口在系統(tǒng)控制的范疇中一直占據(jù)了極其重要的地位,它不僅沒有因為時代的進(jìn)步而被淘汰,反而在規(guī)格上越來越完善,應(yīng)用也越來越廣泛。為了不同廠商的計算機和各種外圍設(shè)備串行連接
37、的需要,已經(jīng)制定了一些串行物理接口的標(biāo)準(zhǔn)。其中,最著名和廣泛采用的是EIA-RS-232C,現(xiàn)在,串行通信端口RS232是計算機上的標(biāo)準(zhǔn)配置,既可以用于計算機和設(shè)備之間近距離連接的直接通信,也可以用于連接調(diào)制解調(diào)器來進(jìn)行遠(yuǎn)距離的串行數(shù)據(jù)傳輸11。1. 物理接口特性EIA-RS-232C是由美國電子工業(yè)協(xié)會EIA制訂的一種串行物理接口標(biāo)準(zhǔn),EIA-RS-232C關(guān)于機械特性的要求,規(guī)定使用一個25針的標(biāo)準(zhǔn)連接器,對該連接器的尺寸及每個插針的排列位置等都有明確的規(guī)定。隨著使用的不斷發(fā)展,演化出9針接口的RS 232端口,計算機上通常配備COM1端口,即以9針腳引出的RS232通信端口。9針RS23
38、2端口引腳說明。2. 電氣特性數(shù)字電路和計算機接口中大部分為5v的TTL或3.3v的CMOS電平,而RS-232的電平定義則不相同,它采用的是負(fù)邏輯。信號要被發(fā)送,一定要定義所謂的0或1的狀態(tài)。在RS-232的標(biāo)準(zhǔn)中,電壓在+3v+15v(一般使用+6V)之間稱為0或Space,一般用途是作為011,電壓在-315v(一般使用-6v)之間稱為1或Mark,一般用途是作為Off。有時候以High和Low更能表現(xiàn)出其實際狀態(tài)。表2.1 RS232端口引腳縮寫功能說明引腳(9針)信號類型源類型描述1CDDCE控制接收信號檢出,高電平有效。當(dāng)CD=1,表示已經(jīng)收到通信線路另一端Modem送來的信號。2
39、RDDCE控制將遠(yuǎn)程的串行數(shù)據(jù)接收進(jìn)來3TDDTE控制將計算機的數(shù)據(jù)發(fā)送出去4DTRDTE控制此引腳有計算機控制,當(dāng)DTR=1時,表明可以傳輸數(shù)據(jù)。5GND控制接地端,信號地和保護(hù)地信號6DSRDCE控制數(shù)據(jù)裝置準(zhǔn)備準(zhǔn)備好,當(dāng)它為高電平時,Modem將通知計算機準(zhǔn)備就緒,可以發(fā)送數(shù)據(jù)。7RTSDTE控制請求發(fā)送,用來表示DTE請求DCE發(fā)送數(shù)據(jù),當(dāng)它為高電平時,計算機向Modem請求發(fā)送數(shù)據(jù)。8CTSDTE控制清除發(fā)送,用來表示DCE準(zhǔn)備好接收DTE發(fā)來的數(shù)據(jù),是對請求發(fā)送信號RTS的響應(yīng)信號。9RIDCE控制響鈴指示,RI=1時,表明Modem收到了交換臺送來的振鈴信號,用它來通知終端。2.
40、3 RS485串行通信接口由于串行通信的簡單易用,使工業(yè)領(lǐng)域大量使用串行通信來進(jìn)行數(shù)據(jù)傳輸,可是工業(yè)環(huán)境通常會有噪聲干擾傳輸線路,在以RS 232進(jìn)行傳輸時經(jīng)常會受到外界的電氣干擾而使信號發(fā)生錯誤,RS485串行通信標(biāo)準(zhǔn)就是為了解決這個問題出現(xiàn)的。RS-485標(biāo)準(zhǔn)是RS-422標(biāo)準(zhǔn)的改進(jìn)增強版本,因其技術(shù)性能先進(jìn),得到了廣泛應(yīng)用。RS485不僅傳輸距離遠(yuǎn),通信可靠,而且使用單一+5V電源或+3V電源,邏輯電平與傳統(tǒng)的TTL兼容。此外,它對傳輸介質(zhì)沒有任何嚴(yán)格的要求,只需將普通雙絞線捆綁在一起即可簡便地組成網(wǎng)絡(luò),除了點對點與廣播通信方式外,還具有多點通信方式。RS-485標(biāo)準(zhǔn)的共模電壓最大與最小
41、值為+12V、-7v,差分輸入電壓范圍為-7V+12V,接受器輸入靈敏度為200mV。其特點是抗干擾能力強,傳輸速率高,距離遠(yuǎn)。在采用雙絞線,不使用MODEM的情況下,在l00Kb/s的傳輸速率時,可以傳送1200m,若速率為9600b/s,則傳送距離可達(dá)1500m,它允許的最大速率為10Mb/s,傳輸距離為15m。RS485采用差分平衡輸入模式,對共模信號有極好的抑制能力。信號將被發(fā)送出去時先分成正負(fù)兩條線路,到達(dá)接收端之后,再將信號相減還原成原來的信號,保證了與原始信號的一致性。使用RS485網(wǎng)絡(luò)可以有效的抑制噪聲信號干擾。也因為這種特性,此種串行通信方式比較適合工業(yè)上的應(yīng)用。2.4 其他
42、串行通信接口2.4.1 USB接口 由于時代的進(jìn)步,串行通信也朝向高速化發(fā)展。近年來個人計算機的快速發(fā)展,使串行通信技術(shù)發(fā)展出了通用串行總線(Universal Serial Bus,USB)接口。此種規(guī)格的目的在于集成一般計算機所使用的外圍設(shè)備連接方式,而且其所采用的信號傳輸方式也是串行通信。到目前為止,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è)備稱為全速設(shè)備。USB總線由VBUS(USB電
43、源)、D+(數(shù)據(jù))、D-(數(shù)據(jù))和GND(USB地)4根線組成,用于傳送信號和提供電源,線纜的最大長度不超過5m。按照標(biāo)準(zhǔn),USB的標(biāo)準(zhǔn)脈沖時鐘頻率為12MHz,而其總線脈沖時鐘為1ms(1kHz),即每隔1ms,USB設(shè)備應(yīng)為USB總線產(chǎn)生1個時鐘脈沖序列,這個脈沖序列稱為幀開始數(shù)據(jù)包(SOF)。高速外設(shè)長度為每幀12Kbit,而低速外設(shè)長度為每幀,1個USB數(shù)據(jù)包可包含0-1023字節(jié)數(shù)據(jù),每個數(shù)據(jù)包的傳送都以1個同步字段開始。USB主控制器時鐘產(chǎn)生每幀1ms的時間片,它是通過以1ms的間隔發(fā)送幀開始(SOF)的方法來建立幀的。SOF令牌是一個幀周期內(nèi)第一個被傳輸?shù)膬?nèi)容,在發(fā)送一個SOF令
44、牌之后,幀周期所剩余的時間內(nèi),主控制器可以自由地發(fā)送其他處理操作。當(dāng)主控制器處于正常工作狀態(tài)時,不管有沒有其他的總線操作,SOF令牌必須以1ms的周期連續(xù)產(chǎn)生。如果主控制器進(jìn)入了一個它不能在總線上提供電源供應(yīng)的狀態(tài),它就不能產(chǎn)生SOF,而且,如果主控制器不再生成SOF,它可以進(jìn)入一個低功耗狀態(tài)。SOF令牌具有訪問總線的最高優(yōu)先權(quán),集線器中的串?dāng)_電路在幀結(jié)束(EOF)期間,從電氣上對任意一個有效的發(fā)送器進(jìn)行隔離,為SOF的傳輸提供一條空閑的總線。主機在每一個SOF令牌傳輸中會傳送當(dāng)前幀標(biāo)號的低11bit,當(dāng)主控制器發(fā)出請求時,當(dāng)前的幀標(biāo)號就是在該請求完成時已經(jīng)存在的幀標(biāo)號由主機(主控制器或HCD
45、)所返回的當(dāng)前幀標(biāo)號至少為32bit,主控制器自身并不需要保留超過11bit的標(biāo)號。在EOF期間,主控制器可以停止傳輸。當(dāng)EOF間隔開始時,專門為剛剛通過的那一幀所安排的任一處理操作都會被重試。如果在遇到一個EOF時間問隔時。主控制器正在執(zhí)行一項處理操作,它將中止該項處理。2.4.2 IEEE-1394IEEE-1394(也稱為FireWire,火線)也是一種高性能的串行總線標(biāo)準(zhǔn),它與USB一樣擁有PnP(即插即用)功能,也是用于解決計算機與外圍設(shè)備復(fù)雜的連接問題,同樣具有容易使用與高速等特點,并且也是使用串行通信的傳輸方式。IEEE-1394特別適用于高速傳輸?shù)沫h(huán)境,現(xiàn)在已經(jīng)達(dá)到的速度是40
46、0Mbps,下一個版本中將達(dá)到1000Mbps,最多可以串接63個外圍設(shè)備,可以提供異步和同步兩種傳輸模式。IEEE-1394和USB有很多相似之處,它一共使用6條線纜,其中兩條線是直流供給線,電壓范圍840V,電流最大為。還有兩對雙絞線作為信號線:一對是差模時鐘線,另一對是差模數(shù)據(jù)線。其設(shè)備連接也是很方便的,支持熱插拔和即插即用,在增加或拆除后,IEEE-1394也會自動調(diào)整拓?fù)浣Y(jié)構(gòu),重設(shè)整個外圍設(shè)備的網(wǎng)絡(luò)狀態(tài)。IEEE-1394的標(biāo)準(zhǔn)開始是IEEE-l394-1995,后來發(fā)展成為IEEE-1394a-2000,目前實際使用的為1394a,數(shù)據(jù)傳輸速率有三檔:l00Mb/s,200Mb/s
47、,400Mb/s。IEEE-1394a又有升級版本lEEE-1394b-2002,它的速率為800Mb/s,和32Gb/s因為它們的通信協(xié)議和管理機制與USB不同,IEEE-1394設(shè)備的自動配置不需要主機的干預(yù)。 第3章 串行通信協(xié)議 在串行通信過程中,數(shù)據(jù)和聯(lián)絡(luò)信號時使用同一根信號線來傳送的,所以收發(fā)雙方必須考慮解決一下問題:1)雙方約定以何種速率進(jìn)行數(shù)據(jù)的發(fā)送和接收(波特率);2)約定采用何種數(shù)據(jù)格式(幀格式),如果包含控制信息,那么它的定義是什么;3)接收方如何得知一批數(shù)據(jù)的開始和結(jié)束(幀同步);4)接收方如何從位流中正確地采樣到位數(shù)據(jù)(位同步);5)接收方如何判斷收到數(shù)據(jù)的正確性(數(shù)
48、據(jù)校驗);6)收發(fā)出錯時如何進(jìn)行處理。顯然,收發(fā)雙方必須遵守一些共同的通信協(xié)議5(或稱為通信控制規(guī)程),才能解決以上問題。在傳輸數(shù)字信號時接收端必須有與數(shù)據(jù)位脈沖具有相同頻率的時鐘脈沖來逐位將數(shù)據(jù)讀入寄存器,這種在接收端使數(shù)據(jù)位與時鐘脈沖在頻率和相位上保持一致的機制稱為同步。根據(jù)在接收端獲取同步信號的方法不同,同步方式可分為位同步方式和字符同步方式,也稱為同步傳輸方式和異步傳輸方式。3.1同步通信 同步通信即位同步方式,同步通信即位同步方式,是利用編碼機制把時鐘信息和數(shù)據(jù)放在一起發(fā)送給接收端,以保證每一位的正確性,但這種同步方式?jīng)]有辦法來區(qū)分字符之間的界限,從一個二進(jìn)制位串中提取正確的字符信息
49、。為此,在位同步的基礎(chǔ)上,需要發(fā)送方在一組數(shù)據(jù)前附加一個或兩個稱為同步字符的特殊約定代碼,去通知接收器串行數(shù)據(jù)第一位到達(dá)的時間。為了確保正確提取字符,字符之間不能有類似于異步傳輸那樣的間隙,必須以連續(xù)的形式發(fā)送,每個時鐘周期發(fā)送一位數(shù)據(jù),數(shù)據(jù)信息后是兩個錯誤校驗字符。接收方在收到同步字符后,立即開始按事先約定的長度(5、6、7或者8位)從位串中逐個提出字符。同步通信采用的同步手段和同步字符的個數(shù)不同,字符的數(shù)據(jù)格式叫做單同步數(shù)據(jù)格式,數(shù)據(jù)格式。存在著不同的格式結(jié)構(gòu),具有一個同步有兩個同步字符的數(shù)據(jù)格式叫做雙同步異步通信中按字符成幀(從起始位到停止位)進(jìn)行傳送,而同步傳送則采用數(shù)據(jù)塊或幀進(jìn)行傳送
50、6。圖中所示為某同步協(xié)議的幀格式,在幀開頭有同步字符SYNC,同步字符的格式和個數(shù)根據(jù)需要確定,其作用是通知接收器“消息到達(dá)”,并且接收器和發(fā)送器需要開始同步。同步字符后的第一個數(shù)據(jù)是消息頭或稱為報頭,它包含有助于接收器如何處理后續(xù)數(shù)據(jù)的控制信息,如一幀內(nèi)的字符計數(shù)等,再以后是以字符或者比特為單位的消息編碼,也稱為報文,最后是校驗字符,常用CRC循環(huán)冗余校驗碼,校驗字的作用是檢測整個數(shù)據(jù)塊在傳送過程中是否有差錯。表3.1給出了同步通信協(xié)議的幀格式。表3.1 同步通信協(xié)議的幀格式SYNCSYNCSYNC頭數(shù)據(jù)(0或者更多字節(jié))CRCSYNC同步通信的數(shù)據(jù)傳輸效率較異步通信高,傳輸速率也較高但是同
51、步傳送不僅要保持每個數(shù)據(jù)字符內(nèi)各位以預(yù)定的固定時鐘頻率傳送,而且還要求整個數(shù)據(jù)塊內(nèi)的位都按照預(yù)定的固定時鐘頻率傳送,此外數(shù)據(jù)塊之間不允許有間隙,若有間隙必須用同步字符填充。收發(fā)雙方時鐘嚴(yán)格同步是同步通信的基本要求,在技術(shù)上,這種要求必須用硬件從接收到的數(shù)據(jù)中分離出同步時鐘來實現(xiàn),所以硬件電路復(fù)雜是同步通信的缺點。異步通信串行異步通信即異步傳輸方式是以字符為單位進(jìn)行傳輸,其通信協(xié)議是起止式異步通信協(xié)議。一個字符正式發(fā)送之前,先發(fā)送一個起始位,寬度為1位的低電平;結(jié)束時發(fā)送一個寬度為l位,15位或者2位的高電平作為停止位;數(shù)據(jù)位為5-8位,可在數(shù)據(jù)位內(nèi)設(shè)1位奇偶校驗位,字符之間可以有空閑位,它們都
52、是高電平。異步傳輸過程中的起始位和停止位起著重要的作用:起始位標(biāo)志著每一個字符的開始,停止位標(biāo)志著每一個字符的結(jié)束。由于串行通信采用起始位為同步信號,接收端總是在每個字符的頭部即起始位處進(jìn)行一次重新定位,保證每次采樣對應(yīng)一個數(shù)據(jù)位。所以異步傳送的發(fā)送器和接收器不必用同一個時鐘,而是各有自己的局部時鐘,只要同一標(biāo)稱頻率即可。異步傳送以字符為單位,當(dāng)接收方收到起始位之后,只要在一個字符的傳輸時問內(nèi)能和發(fā)送器保持同步,就能完成正確的接收。如果接收器和發(fā)送器的時鐘略有誤差,兩個字符之間的停止間隔將為這種誤差提供一種緩沖,因此,異步通信方式允許有一定的頻率漂移,一般發(fā)送器和接收器雙方各自用晶振產(chǎn)生時鐘即
53、可滿足要求,收發(fā)雙方系統(tǒng)時鐘的誤差容限為5對時鐘同步的要求不太嚴(yán)格,這是異步通信的突出優(yōu)點,但是異步通信要求每個字符傳送都有起始位和停止位,因此控制信息至少占總信息的20,這部分的額外開銷使得傳送效率相對比較低。3.3傳輸制式在串行通信中。按照同一時刻數(shù)據(jù)流的方向可分為三種基本傳送制式:單工傳送,半雙工傳送和全雙工傳送7,如圖3.1所示。圖3.1 傳輸制式示意圖單工傳送僅支持在一個方向上的數(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ù)傳輸線,它們都有獨立的發(fā)送器和接收器,所以在同一個時刻只能進(jìn)行一個方向的傳送。全雙工傳送支持?jǐn)?shù)據(jù)在兩個方向同時傳送,即設(shè)備A可以發(fā)送數(shù)據(jù)到設(shè)備B,設(shè)備B也可以同時發(fā)送數(shù)據(jù)到設(shè)備A,它們都有獨立的發(fā)送器和接收器,并有兩條傳輸線。對于常用到的串行通信來說,可以利用的傳輸線路就決定了工作模式。RS232因為其引腳設(shè)計時就是接收與發(fā)送采用兩個不同的引腳與線路,其信號標(biāo)準(zhǔn)電位是參考地線而得到的,兩條數(shù)據(jù)線路可以分別作為數(shù)據(jù)的傳送及接收,因此使用的是全雙工的模式,這種參考到地線而得到信號標(biāo)準(zhǔn)電位的傳輸方式稱為單接點式輸入。RS485上的數(shù)據(jù)線
55、路雖然也有兩條,不過這兩條線路卻是一個信號標(biāo)準(zhǔn)電位的正負(fù)端,真正的信號必須是兩條線路的相減而得到。因此在一個時間點內(nèi),只可以有一個方向的數(shù)據(jù)在傳送,也就形成了半雙工的工作模式這種不參考地線而由兩條信號標(biāo)準(zhǔn)電位相減來得到實際信號標(biāo)準(zhǔn)電位的傳輸方式成為差動式輸入。3.4硬件握手和軟件握手握手信號實際上是控制信號,用來控制數(shù)據(jù)的傳輸。通過握手信號,發(fā)送端可以得知接收端是否有數(shù)據(jù)要發(fā)送。接收端通過握手信號通知發(fā)送端它是否已經(jīng)準(zhǔn)備好了接收信號8。當(dāng)發(fā)送端和接收端處理數(shù)據(jù)的速度不一樣時,可能就會造成數(shù)據(jù)丟失。在傳輸中,如果發(fā)送端的發(fā)送速度大于接收端的接收速度,同時若接收端處理數(shù)據(jù)的速度不夠快的話,那么接收
56、端的緩沖區(qū)必定在一定時間后溢出,從而造成以后發(fā)送過來的數(shù)據(jù)不能進(jìn)入緩沖區(qū)而丟失。發(fā)送端何時可以繼續(xù)發(fā)送數(shù)據(jù),何時必須暫停發(fā)送,從而讓接收端有時間處理數(shù)據(jù),稱為流量控制,必須靠握手信號來解決這個問題。3.4.1硬件握手 在硬件握手中,發(fā)送端通過將某一個導(dǎo)線拉到高電平或者低電平,來表示發(fā)送端可以發(fā)送數(shù)據(jù)。接收端已經(jīng)準(zhǔn)備好接收數(shù)據(jù)之后,也把某一個導(dǎo)線拉到高電平或者低電平,來通知發(fā)送端,發(fā)送端一直在檢測這個信號。接收端可以在任何時候把這個信號變?yōu)闊o效,甚至是在接收一個數(shù)據(jù)塊過程中。當(dāng)發(fā)送端檢測到這個信號變?yōu)闊o效之后,就必須停止本次發(fā)送。3.4.2軟件握手 在軟件握手中,以數(shù)據(jù)線上的數(shù)據(jù)信號來代替實際的
57、硬件電路。這種方法用在直接連接或者通過調(diào)制解調(diào)器連接的兩臺計算機之間進(jìn)行雙向通信的場合。對于軟件握手現(xiàn)在已經(jīng)建立了一些標(biāo)準(zhǔn)協(xié)議,其中最常用的是XON/XOFF協(xié)議。3.5串行通信的基本參數(shù)串口的通信方式是將字節(jié)拆分成一個接著一個的位后再進(jìn)行傳輸。接到此電位信號的一方將此一個一個的位組合成原來的字節(jié),如此形成一個字節(jié)的完整傳輸。在傳輸進(jìn)行過程中,雙方明確傳輸信息的具體方式,否則雙方就會沒有一套共同的譯碼方式,從而無法了解對方所傳輸過來的信息的意義。因此雙方為了進(jìn)行通信規(guī)則,這個共同的規(guī)則就是串口的初始化9。串口的初始化必須對以下幾項參數(shù)進(jìn)行設(shè)置。 波特率串行通信的傳輸受到通信雙方設(shè)備性能及通信線
58、路的特性所控制,收發(fā)雙方必須按照同樣的速率進(jìn)行串行通信,即收發(fā)雙方采用同樣的波特率。我們通常將傳輸速度稱為波特率,指的是串行通信中每秒所傳輸?shù)臄?shù)據(jù)位數(shù)。單位是“波特每秒”(bps)。國際上規(guī)定了標(biāo)準(zhǔn)波特率系列值,最常用的標(biāo)準(zhǔn)波特率有110,300,600。1200,2400,4800,9600和19200。在進(jìn)行串行通信時,根據(jù)傳送的波特率來確定發(fā)送時鐘和接收時鐘的頻率。異步傳送過程中,每發(fā)送一位數(shù)據(jù)的時間長度由發(fā)送時鐘決定,每接收一位數(shù)據(jù)的時間長度由接收時鐘測定,它們和波特率有如下關(guān)系:時鐘頻率=n*波特率;式中n為波特率系數(shù)或者波特率因子,它的取值可以為l,16,32或64。數(shù)據(jù)的傳輸單位
59、一般串口所傳輸?shù)臄?shù)據(jù)時字符型,若用來傳輸文件,則會使用二進(jìn)制的數(shù)據(jù)形式。當(dāng)使用字符型時,工業(yè)界使用到的ASCII字符及JIS字符;ASCII碼使用了8位形成一個字符,而JIS碼則以7位形成一個字符。歐美的設(shè)備多使用8位的字節(jié),而日本的設(shè)備多使用7位為一個字節(jié)。因此只要7位就可以將ASCII碼的0127碼表達(dá)出來(27=128,共有128種組合方式),所有的可見字符也在此范圍內(nèi),所以只要7個數(shù)據(jù)位就夠了。不同的情形下(根據(jù)所使用的協(xié)議),會使用到不同的傳輸單位。使用多少位合成一個字節(jié)必須先行確定。 起始位與停止位由于異步串行傳輸中沒有使用同步時鐘作為基準(zhǔn),因此接收端不知道發(fā)送端何時將進(jìn)行數(shù)據(jù)的傳
60、輸。而當(dāng)發(fā)送端準(zhǔn)備要開始傳送數(shù)據(jù)時,發(fā)送端會在所送出的字符前后分別加上高電位的起始位(邏輯0)及低電位的停止位(邏輯1),它們稱為起始位和停止位。當(dāng)發(fā)送端要開始傳送數(shù)據(jù)時,便將傳輸線上的電壓由低電位提升至高電位,而當(dāng)傳送結(jié)束后,再將電壓降至低電位。接收端會因為起始位的觸發(fā)(因電壓由低電位升至高電位)而開始接收數(shù)據(jù),并因停止位的通知(因電壓維持在低電位)而確切知道數(shù)據(jù)的字符信號已經(jīng)結(jié)束。加入了起始位及停止位也比較容易達(dá)到多字符的接收能力,起始位固定為一位,而停止位則有1、1.5、2位等多種選擇,由通信雙方共同遵守的通信協(xié)議來控制和識別。 校驗位為了防止傳輸過程中的干擾造成數(shù)據(jù)錯誤,數(shù)據(jù)幀中可以加
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- D打印技術(shù)在個性化教育資源的開發(fā)考核試卷
- 期刊出版論文的開源出版趨勢考核試卷
- 教育音像制品策劃與制作考核試卷
- 文具行業(yè)個性化服務(wù)考核試卷
- 工業(yè)園區(qū)電動汽車充電需求分析考核試卷
- 健康生活方式與營養(yǎng)健康考核試卷
- 個人培訓(xùn)課件大全
- 買杭州新房合同范本
- 私人店鋪租賃合同范本
- 2025屆吉林省吉林地區(qū)高三上學(xué)期二模英語試題及答案
- GB/T 15934-2008電器附件電線組件和互連電線組件
- GA/T 765-2020人血紅蛋白檢測金標(biāo)試劑條法
- 第2章-西周-春秋戰(zhàn)國時期的音樂-1-3節(jié)課件
- 提高白云石配比對燒結(jié)生產(chǎn)的影響
- 公安基礎(chǔ)知識考試題庫(含各題型)
- 選礦試車方案
- 小課題專題研究參考題目
- 《最好的未來》合唱曲譜
- GB∕T 8081-2018 天然生膠 技術(shù)分級橡膠(TSR)規(guī)格導(dǎo)則
- 教學(xué)課件個人理財-2
- 航空航天概論(課堂PPT)
評論
0/150
提交評論