日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

RS232C串行通訊接口的應(yīng)用(下篇)

 雙喜臨門 2011-03-01

RS232C串行通訊接口的應(yīng)用(下篇)

作者:溫正偉

  軟件和通訊協(xié)議
  實(shí)例中的軟件可以分為上位機(jī)和下位機(jī)。下位機(jī)是由AT89C51與其固件程序組成,上位機(jī)則是由DELPHI編寫的串口應(yīng)用程序。上位機(jī)程序主要負(fù)責(zé)向RS232C發(fā)送主控信號和接收處理返回的信號,下位機(jī)則用于接收電腦主機(jī)從RS232C發(fā)送過來的主控信號再根據(jù)信號的內(nèi)容作出相應(yīng)的控制。上位機(jī)和下位機(jī)通訊時(shí)應(yīng)先預(yù)定通訊所用的速率和格式,這里選用9600波特,8數(shù)據(jù)位,1停止位,無校驗(yàn)位。為了保證單片機(jī)在接收到控制字符時(shí)不會誤動作,我用設(shè)定了一個(gè)簡單的通訊協(xié)議,協(xié)議為4個(gè)字節(jié),只有當(dāng)前后兩個(gè)用于校驗(yàn)的字節(jié)都為0x61時(shí),中間的控制字才為有效。如果對通訊的可靠性要求高的話,應(yīng)用到CRC等算法來產(chǎn)生校驗(yàn)字節(jié)。協(xié)議說明如下:

字節(jié) 數(shù)值范圍 含義
B1 0x61(也可以改為0x00-0xFF) 用于和B4組成簡單的命令有效標(biāo)識,也可以做為主控板的ID(更改此值要在單片機(jī)程序中修改)
B2 0x00-0x04 0x00-0x02分別為表示控制89C51的P0,P1,P2口。當(dāng)B2B3都為0x03時(shí),關(guān)閉P0,P1,P2。當(dāng)B2B3都為0x04時(shí)運(yùn)行89C51內(nèi)置測試程序。
B3 0x00-0xFF 向P口輸出的數(shù)據(jù)。
B4 同B1 只有B1,B4為一樣值時(shí)命令才有效。
表1 實(shí)例中程序所使用的簡單通訊協(xié)議
  注:文中"0x"表示十六進(jìn)制,如發(fā)送0x61,0x0,0x0A,0x61,則這時(shí)AT89C51的P0口為0x0A(二進(jìn)制為00001010),P0.1,P0.3腳為高電平,P0口其它引腳為低電平。在單片機(jī)完成命令后會向串口發(fā)送剛才收到4個(gè)字節(jié)的字符,上位軟件也可以根據(jù)這個(gè)確認(rèn)下位機(jī)是否順利完成命令。

  本實(shí)例提供了單片機(jī)固件的C語言源程序和window下的V1.0示例程序源代碼(DELPHI)。V1.0的演示程序界面見圖七。示例程序的使用也是很簡單的,把實(shí)例電路連接到電腦的COM1口上,運(yùn)行示例程序,這時(shí)點(diǎn)擊"內(nèi)置測試"24個(gè)繼電器就會逐個(gè)閉合一段時(shí)間又?jǐn)嚅_,完成后程序會彈出如圖七的成功對話框,如點(diǎn)擊程序界面上編號的選項(xiàng)框則相應(yīng)P口上的繼電器閉合或斷開。

  上述的所有源碼程序和可執(zhí)行文件都可在本期的附加光盤上找到,更多更新的相關(guān)資料可以訪問筆者的網(wǎng)站http://www.。(源碼程序可在這點(diǎn)擊下載


圖7:示例軟件界面

  RS232C串口的基本知識
  圖八是RS232C的DB25針連接器,其引腳排列和名稱見表2。在這25個(gè)引腳中包含了兩個(gè)信道,分別為主信道和次信道,其中有4個(gè)數(shù)據(jù)線,11個(gè)控制線,3個(gè)定時(shí)信號線和2個(gè)信號地。次信道為輔助串行通道,其傳輸速率與主信道要低得多,其它功能都一樣,但較少的使用到。在AT、ATX型的PC和新其它新型的PC只提供一到兩個(gè)的只有主信道的RS232C串口,它們通常是使用DB9插針型連接器安裝在PC后面板上,在BIOS或操作系統(tǒng)中稱之為COM1、COM2(這個(gè)設(shè)備號也用于程序編寫中,也可以用COM3,COM4等),外觀和引腳定義分別見圖三和圖九,實(shí)例電路就是要使用它來進(jìn)行和電腦進(jìn)行通訊。

圖8:DB25型連接器

圖9:DB-9型連接器

引腳號
名 稱
1
保護(hù)地
2
發(fā)送數(shù)據(jù)TxD
3
接收數(shù)據(jù)RxD
4
請求發(fā)送RTS
5
清除發(fā)送CTS
6
數(shù)據(jù)裝置準(zhǔn)備好DSR
7
信號好GND
8
載波檢測CD
9
保留,供測試用
10
保留,供測試用
11
未定義
12
次信道載波檢測
13
次信道清除發(fā)送
14
次信道發(fā)送數(shù)據(jù)
15
發(fā)送器時(shí)鐘TxC
16
次信道接收數(shù)據(jù)
17
接收器時(shí)鐘RxC
18
未定義
19
次信道請求發(fā)送
20
數(shù)據(jù)終端準(zhǔn)備好DTS
21
信號質(zhì)量檢測
22
振鈴指示RI
23
數(shù)據(jù)信號速率選擇器
24
終端發(fā)送器時(shí)鐘
25
未定義

表2 RS232C的引腳定義
  RS232C的引腳很多。但在業(yè)余的電子制作中主要用到的是RxD/TxD(數(shù)據(jù)收發(fā)引腳),它也是在上面實(shí)例制作中用到的引腳。RxD(Received Data)為串行數(shù)據(jù)接收端,用于接收數(shù)據(jù)用。TxD(Transmitted Data)為串行數(shù)據(jù)發(fā)送端。其它的控制腳使用時(shí)就要注意軟件中的功能和電平的狀態(tài)。當(dāng)兩個(gè)設(shè)備都有RS232C串行接口時(shí),只要把它們的RxD、TxD交叉相連就可以用實(shí)現(xiàn)串行通訊了,如圖十的連接方式就可以用于兩臺電腦之間的通訊。當(dāng)兩設(shè)備的接口電平不相同時(shí)就要根據(jù)上面提到的EIA和TTL電平轉(zhuǎn)換的問題。實(shí)際上實(shí)例電路也是用到了圖十的連接方式只不過是多用了電平轉(zhuǎn)換。

  串行通信時(shí),數(shù)據(jù)和聯(lián)絡(luò)信號都是用同一根信號線來傳送的,這就要求收發(fā)遵守以下幾點(diǎn):
   1) 雙方約定的通信的速率(波特率),如在實(shí)例中單片機(jī)和電腦都是使用9600波特。
   2) 雙方約定的數(shù)據(jù)格式(幀格式),其中包含控制信息應(yīng)該有明確的定義,如實(shí)例中簡單的通訊協(xié)議。
   3) 接收方應(yīng)如何得知一段數(shù)據(jù)的開始和結(jié)束(幀同步),如實(shí)例中簡單協(xié)議中的B1,B4。
   4) 接收方如何判斷收到的數(shù)據(jù)的正確性(數(shù)據(jù)校驗(yàn))。
   5) 接收方如何從位流中正確地采樣到位數(shù)據(jù)(位同步)。
   6) 收發(fā)出錯(cuò)時(shí)如何外理(出錯(cuò)外理)。

圖10:最簡單的串口連接方式

  根據(jù)同步方式的不同,串行通信又分為兩類,異步通信和同步通信。同步通信時(shí)除了需要發(fā)送數(shù)據(jù)線,接收數(shù)據(jù)線和信號地線以外,還需要一根時(shí)鐘信號線,時(shí)鐘信號用于同步數(shù)據(jù)的發(fā)送和接收,傳送時(shí)是先讀取同步位,兩設(shè)備的同步模式一樣時(shí)數(shù)據(jù)開始傳送,直到送完數(shù)據(jù)塊,發(fā)送大的數(shù)據(jù)塊時(shí)要周期性的重發(fā)同步字符。同步通信主要是應(yīng)用于高速數(shù)據(jù)傳送場合。而在實(shí)例中用到的是最簡單的異步通信,它不需要上述的時(shí)鐘信號線,只要發(fā)送數(shù)據(jù)線、接收數(shù)據(jù)線和信號地線就可以了。異步通信發(fā)送的數(shù)據(jù)是以每次一個(gè)字符形式發(fā)出,接收端的同步是通過檢測包含在每個(gè)字符的開始和結(jié)束外的同步位而形成,這就造成20%冗余時(shí)間,使速度通訊速度變慢。

  在業(yè)余的制作中通常是使用異步通信,在編寫程序時(shí)只要做到上位機(jī)和下位機(jī)的使用同樣的波特率、數(shù)據(jù)位數(shù)、停止位和有奇偶校驗(yàn)位就可以實(shí)現(xiàn)簡單的RS232C異步通信。當(dāng)然異步通信也可實(shí)現(xiàn)多種傳輸制式,如單工、半雙工和全雙工通信鏈路,這里不做詳細(xì)說明了。

  RS232C接口在幾乎每一臺臺式PC電腦中被使用,在一些新式的筆記本電腦也許只會有USB接口,這時(shí)可以用USB轉(zhuǎn)RS232C的設(shè)備取得RS232接口。在你的智能電子制作中不如加入對它的使用,一定會給你的制作或發(fā)明增色不少,如我們可以在一些要讀數(shù)、采集的儀表中加入串口采集或控制這樣就可以用電腦強(qiáng)大的處理能力去處理相關(guān)的數(shù)據(jù),也可以在一些要用到電腦控制的電路制作中用到串口。圖一、二、十一是本文實(shí)例制作的實(shí)物圖,關(guān)于它的PCB和相關(guān)的制作資料請?jiān)L問筆者的主頁http://www.,如有相關(guān)問題和建議也可以聯(lián)系筆者Email:pnzwzw@。

圖11:實(shí)物圖

零件 數(shù)量 備注
AT89C51
1
AT89C52,AT89S51/52均可直接代用
DB9插座
1
 
11.0592M晶振
1
 
發(fā)光二極管
1
 
10K電阻
2
以下零件只包括一個(gè)主控板和一個(gè)繼電器控制板
1K電阻
11
 
8.2K電阻
1
 
10K8位排阻
1
 
IN4148
9
 
BC547
2
其它同類管子也可
30p瓷片電容
2
 
10uF電解電容
1
 
10pin扦針
5
 
9012
8
 
5V繼電器
8
如用大于5伏的繼電器需更改驅(qū)動電路
10pin接線
1
 
表3 零件表

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多