小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

串口編程之前奏篇

 orion360doc 2011-01-30
串口編程之前奏篇
------------------------------------------------------------------------
Author   :tiger-john
WebSite  :blog.csdn.net/tigerjb
Email    :jibo.tiger@gmail.com
Tiger聲明:本人鄙視直接復(fù)制本人文章而不加出處的個(gè)人或團(tuán)體,但不排斥別人轉(zhuǎn)載tiger-john的文章,只是請(qǐng)您注明出處并和本人聯(lián)系或留言給我。3Q
--------------------------------------------------------------------------
眾所周知嵌入式系統(tǒng)之間采用通信方式交換數(shù)據(jù),由于各類CPU均集成了UART部件。所以串行通信是一種最基本的通信手段。因此,我們也對(duì)它進(jìn)行深入的了解
本文章針對(duì)串口編程時(shí)如何設(shè)計(jì)串口通信協(xié)議,以及對(duì)RS232接口進(jìn)行了說明。為下一步進(jìn)行串口編程進(jìn)行熱身
 
1.    通信協(xié)議設(shè)計(jì)
在進(jìn)行通信時(shí),每次需要傳送的信息一般超過1字節(jié)。為此,通信雙方必須約定通信數(shù)據(jù)的排列格式,即通信協(xié)議。通常把一次通信過程的全部?jī)?nèi)容稱為一個(gè)“通信幀”。通信協(xié)議設(shè)計(jì)就是幀結(jié)構(gòu)設(shè)計(jì)。
在一幀內(nèi)容中,通常包括以下部分。
1>  起始碼:由一個(gè)或若干個(gè)包含特定內(nèi)容的字節(jié),表示一個(gè)通信幀的開始。起始碼的內(nèi)容必須與通信數(shù)據(jù)內(nèi)容有明顯區(qū)別(不能在通信數(shù)據(jù)里出現(xiàn)與起始碼相同的內(nèi)容)
注:
當(dāng)通信幀的總長(zhǎng)度比較短,信道質(zhì)量比較高時(shí),為了提高效率,可以不設(shè)置起始碼。
2>  地址碼:在主從結(jié)構(gòu)的多機(jī)組網(wǎng)通信系統(tǒng)中,用來指明分機(jī)號(hào)。
l  當(dāng)分機(jī)總數(shù)在255臺(tái)之內(nèi)時(shí),地址碼為1字節(jié)??梢远x一個(gè)特殊的地址碼作為廣播地址,代表所有的分機(jī)。
l  在多主多從(無主從)結(jié)構(gòu)的多機(jī)組網(wǎng)通信系統(tǒng)中,地址碼包含收發(fā)雙方的地址。
注:
如果是兩臺(tái)設(shè)備之間進(jìn)行點(diǎn)對(duì)點(diǎn)的通信,幀結(jié)構(gòu)中就步需要包含地址碼。
3>  長(zhǎng)度碼:在數(shù)據(jù)長(zhǎng)度不固定的通信場(chǎng)合(變長(zhǎng)幀),表示本幀數(shù)據(jù)內(nèi)容的字節(jié)數(shù)。當(dāng)長(zhǎng)度肯定不超過255字節(jié)時(shí),長(zhǎng)度碼用1字節(jié)表示。
注:
如果每次通信數(shù)據(jù)內(nèi)容的長(zhǎng)度為雙方約定的固定值(定長(zhǎng)幀),幀結(jié)構(gòu)中就不需要包含長(zhǎng)度碼。
4>  數(shù)據(jù)段:通信的實(shí)質(zhì)內(nèi)容。
5>  校驗(yàn)碼:由于通信信道存在干擾,為了判斷接收的內(nèi)容是否受到干擾,需要加入效驗(yàn)碼。
效驗(yàn)碼算法可以采用
l  簡(jiǎn)單的異或校驗(yàn)碼。
l  也可以像HEX文件那樣采用算術(shù)加法校驗(yàn)。
l  采用功能極強(qiáng)的CRC校驗(yàn)。
注:當(dāng)通信環(huán)境非常好時(shí)(如室內(nèi)設(shè)備之間的通信),幀結(jié)構(gòu)中就不需要包含校驗(yàn)碼。
2.    RS232標(biāo)準(zhǔn)
1>  簡(jiǎn)介:
l  RS232接口是1970年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)”。
l   該標(biāo)準(zhǔn)規(guī)定采用一個(gè)25個(gè)腳的DB25連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對(duì)各種信號(hào)的電平加以規(guī)定。隨著設(shè)備的不斷改進(jìn),出現(xiàn)了代替DB25的DB9接口,現(xiàn)在都把RS232接口叫做DB9
注:我們后面所用的都是RS232的DB9接口
2>  接口定義
先看圖:
 
 
(圖片來自百度)
引腳1:DCD 載波檢測(cè)
引腳2:RXD 接收數(shù)據(jù)
引腳3:TXD 發(fā)送數(shù)據(jù)
引腳4:DTR 數(shù)據(jù)終端準(zhǔn)備好
引腳5:SG 信號(hào)地
引腳6:DSR 數(shù)據(jù)準(zhǔn)備好
引腳7:RTS 請(qǐng)求發(fā)送
引腳8: CTS 清除發(fā)送
引腳9: RI 振鈴提示
 
Tiger-John說明:
 
1在UART0串口編程中我們只用到了引腳2,引腳3,和引腳5.
2.    目前的串口線有兩中連接方法:
l  平行線:2接2,3接3(即發(fā)對(duì)發(fā),接對(duì)接)
l  交叉線:2接3,3接2(即發(fā)對(duì)接,接對(duì)發(fā))
各個(gè)外設(shè)所用的連接方法都不一樣。因此,調(diào)試程序時(shí),一定要注意你所用的是那中串口線。如果串口線選錯(cuò)的話,它們之間是不通信的
 

UART0串口編程目錄:
串口編程之前奏篇
UART0串口編程系列(一)
UART0串口編程系列(二)
UART0串口編程系列(三)
UART0串口編程系列(四)
UART0串口編程系列(五)
 

 
 
本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/tigerjb/archive/2011/01/19/6153810.aspx

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多