日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

UART0串口编程(一):通信协议设计;RS232标准

發(fā)布時(shí)間:2025/6/15 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UART0串口编程(一):通信协议设计;RS232标准 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

UART0串口編程(一)

嵌入式系統(tǒng)之間采用通信方式交換數(shù)據(jù),串行通信是一種最基本的通信手段。現(xiàn)在由于各類CPU均集成了UART部件。本節(jié)對(duì)串口編程時(shí)如何設(shè)計(jì)串口通信協(xié)議,以及對(duì)RS232接口進(jìn)行了說(shuō)明。

1.????通信協(xié)議設(shè)計(jì)

在進(jìn)行通信時(shí),每次需要傳送的信息一般超過(guò)1字節(jié)。為此,通信雙方必須約定通信數(shù)據(jù)的排列格式,即通信協(xié)議。通常把一次通信過(guò)程的全部?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)中,用來(lái)指明分機(jī)號(hào)。

當(dāng)分機(jī)總數(shù)在255臺(tái)之內(nèi)時(shí),地址碼為1字節(jié)。可以定義一個(gè)特殊的地址碼作為廣播地址,代表所有的分機(jī)。在多主多從(無(wú)主從)結(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)度肯定不超過(guò)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)碼算法可以采用

1)簡(jiǎn)單的異或校驗(yàn)碼。

2)也可以像HEX文件那樣采用算術(shù)加法校驗(yàn)。

3)采用功能極強(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)介:

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)”。該標(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)了代替DB25DB9接口,現(xiàn)在都把RS232接口叫做DB9

注:我們后面所用的都是RS232DB9接口

2)接口定義如下圖:


引腳1DCD?載波檢測(cè)

引腳2RXD?接收數(shù)據(jù)

引腳3TXD?發(fā)送數(shù)據(jù)

引腳4DTR?數(shù)據(jù)終端準(zhǔn)備好

引腳5SG?信號(hào)地

引腳6DSR?數(shù)據(jù)準(zhǔn)備好

引腳7RTS?請(qǐng)求發(fā)送

引腳8?CTS?清除發(fā)送

引腳9?RI?振鈴提示

3)在UART0串口編程中我們只用到了引腳2,引腳3,和引腳5.

4)目前的串口線有兩中連接方法:

平行線:2233(即發(fā)對(duì)發(fā),接對(duì)接)

交叉線:2332(即發(fā)對(duì)接,接對(duì)發(fā))

各個(gè)外設(shè)所用的連接方法都不一樣。因此,調(diào)試程序時(shí),一定要注意你所用的是那中串口線。如果串口線選錯(cuò)的話,它們之間是不通信的。

?

總結(jié)

以上是生活随笔為你收集整理的UART0串口编程(一):通信协议设计;RS232标准的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。