鄒彩梅 葉振華
隨著應(yīng)用對(duì)象的擴(kuò)大和微電子技術(shù)、軟件技術(shù)的發(fā)展,嵌入式系統(tǒng)逐漸從單片機(jī)發(fā)展到高性能嵌入式微處理器和嵌入式操作系統(tǒng)。傳統(tǒng)的微處理器的TTL電平控制模式正在被具有圖形界面的控制模式所取代。而現(xiàn)有的一些具有圖形界面控制的自動(dòng)化設(shè)備,大多采用高端的PC機(jī),其顯示處理設(shè)備的成本占去了整個(gè)系統(tǒng)成本的絕大部分,硬件平臺(tái)的性能和成本制約這些高新技術(shù)的推廣和應(yīng)用,無法適應(yīng)某些特殊行業(yè)(如:自動(dòng)售貨機(jī)、公安、消防、地名數(shù)據(jù)采集、野外探險(xiǎn)導(dǎo)航等)的應(yīng)用。本文介紹一種新的微處理器控制方案:掌上電腦與89C51的串口通信來實(shí)現(xiàn)圖形界面的控制。
硬件結(jié)構(gòu)
1. 掌上電腦
市場(chǎng)上較多見的掌上電腦是Palm系列產(chǎn)品,它使用的操作系統(tǒng)為Palm OS。Palm OS是一種32位的嵌入式操作系統(tǒng),是一套開放性極強(qiáng)的系統(tǒng),開發(fā)者向用戶免費(fèi)提供Palm OS的開發(fā)工具,允許用戶利用該工具,在Palm OS系統(tǒng)的基礎(chǔ)上方便地編寫、修改相關(guān)軟件。該系統(tǒng)是專門為掌上電腦編寫的操作系統(tǒng),編寫時(shí)充分考慮了掌上電腦內(nèi)存相對(duì)較小的情況,本身所占內(nèi)存極小,基于Palm OS編寫的應(yīng)用程序所占空間也很小,通常只有幾十KB。而且基于Palm OS的掌上電腦,雖然只有幾兆的存儲(chǔ)空間,卻可以存儲(chǔ)眾多的應(yīng)用程序。支持Palm OS產(chǎn)品的另一大特點(diǎn)是系統(tǒng)耗電量極小,以Palm Ⅲx為例,在正常情況下2節(jié)7號(hào)堿性電池,可使用2個(gè)月。Palm提供了串行通訊接口和紅外線傳輸接口,利用它可以方便地與其它外部設(shè)備通訊、傳輸數(shù)據(jù)。本系統(tǒng)設(shè)計(jì)方案采用是PALM公司的Palm IV掌上電腦。
2.串行通信的硬件連接
RS-232信號(hào)的電平和單片機(jī)串口信號(hào)的電平不一致,必須進(jìn)行二者之間的電平轉(zhuǎn)換。在此使用的集成電平轉(zhuǎn)換芯片MAX232為RS-232C/TTL電平轉(zhuǎn)換芯片。它只使用單+5V為其工作,配接4個(gè)1μF電解電容即可完成RS-232電平與TTL電平之間的轉(zhuǎn)換。轉(zhuǎn)換完畢的串口信號(hào)TXD、RXD直接和AT89C51串行口連接。硬件連接如圖1所示。
由于RS-232C并未定義連接器的物理特性,因此,出現(xiàn)了DB-25、DB-15和DB-9各種類型的連接器,其引腳的定義也各不相同。在設(shè)計(jì)本系統(tǒng)中使用DB-9連接器連接,作為掌上電腦與MAX232芯片串行接口的連接器,它提供異步通信的9個(gè)信號(hào)。DB-9連接器引腳功能和結(jié)構(gòu)如圖2所示。
軟件編程
89C51微處理器與掌上電腦通信軟件的實(shí)現(xiàn)由兩個(gè)模塊組成:微處理器的通信軟件和掌上電腦的通信軟件。
1. 單片機(jī)通信軟件的設(shè)計(jì)
AT89C51與8051系列單片機(jī)是兼容的。所以編程、仿真和調(diào)試都可采用8051的開發(fā)工具。AT89C51單片機(jī)通信程序采用ASM51匯編環(huán)境下編寫,在MCS-51單片機(jī)仿真調(diào)試軟件下調(diào)試成功。
AT89C51單片機(jī)通過中斷方式接收掌上電腦發(fā)送過來的字符,并回送確認(rèn)信號(hào)給掌上電腦。程序協(xié)議:波特率設(shè)置為T1方式2工作,計(jì)數(shù)常數(shù)為F3H,SMOD=1,波特率為9600b/s;
串行口初始化為方式1,允許接收;中斷服務(wù)程序入口地址為0023H。圖3為程序流程框圖。
2.掌上電腦串口通信軟件設(shè)計(jì)
目前針對(duì)Palm環(huán)境的開發(fā)工具主要有CodeWarror C、JAVA、AppForgePersonal(Basic)等等。由于Palm平臺(tái)與微機(jī)硬件、軟件平臺(tái)有著本質(zhì)的差異,為了減少開發(fā)人員的培訓(xùn)費(fèi)用,提高開發(fā)速度,我們采用CodeWarror C語言作為系統(tǒng)開發(fā)工具,只要熟悉C語言的編程者,都能在極短時(shí)間內(nèi)熟練掌握CodeWarror C編程。
掌上電腦串口通信的實(shí)現(xiàn)遵循以下原則來管理串行口:打開和關(guān)閉串行口;讀寫緩沖區(qū)數(shù)據(jù);查詢緩沖區(qū)有字節(jié)數(shù)并讀入內(nèi)存;設(shè)置選項(xiàng)。
在本刊的網(wǎng)站上給出了單片機(jī)通信軟件及掌上電腦串口通信實(shí)現(xiàn)的源程序,供讀者參考。
3.通信協(xié)議
89C51微處理器與掌上電腦的通信協(xié)議讀者可以采用自定義的協(xié)議,在定義通信協(xié)議時(shí)要注意考慮信號(hào)傳輸?shù)目煽啃浴R部梢圆捎肨CP/IP的協(xié)議形式,一是可以提高傳輸信號(hào)的可靠性,二是可以方便以后系統(tǒng)的功能擴(kuò)展,但編程相對(duì)復(fù)雜。限于篇幅關(guān)系,這里不再作詳細(xì)介紹。
本文介紹的掌上電腦與單片機(jī)89C51的串口通信軟件可以嵌入到大部分的Palm OS的程序中,很好地完成現(xiàn)串口通信的基本任務(wù)。該串口通信軟件現(xiàn)已集成在一家國(guó)外公司的自動(dòng)售卡機(jī)產(chǎn)品中,且已投入使用。