軟件和通訊協(xié)議
表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)擊下載 ![]() ![]() ![]()
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)行通訊。
串行通信時(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ò)外理)。
根據(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@。
表3 零件表
|
|