摘 要:為了實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的數(shù)據(jù)傳輸,可采用各種方法來實(shí)現(xiàn)串行通信。基于CC1100收發(fā)器,實(shí)現(xiàn)了PC機(jī)與單片機(jī)之間的雙工無線通信,并給出了實(shí)現(xiàn)通信的硬件設(shè)計(jì)、軟件流程圖以及相應(yīng)的測試結(jié)果。測試結(jié)果說明,此系統(tǒng)是切實(shí)可行的。
關(guān)鍵詞:單片機(jī); PC機(jī); 串行口; CC1100
中圖分類號:TN919-34文獻(xiàn)標(biāo)識碼:A
文章編號:1004-373X(2010)17-0196-03
Realization of Serial Communication between PC and SCM
CHEN Dong-mei1, LIANG Hong-yu1, LU Dong-mei2
(1.School of Information and Communication Engineering, Guilin University of Electronic Technology, Guilin 541004, China;
2.Department of Physics and Communication Engineering, Baise University, Baise 533000, China)
Abstract: There are ways to realize the serial communication and data transmission between PCs and SCMs. The duplex wireless communication between PCs and SCMs is implemented based on CC1100 transceiver. The hardware design, software flowchart and the test results are offered. The testing result shows that the system is feasible.Keywords: SCM; personal computer(PC); serial port; CC1100
收稿日期:2010-03-30
單片微型計(jì)算機(jī)簡稱單片機(jī),它是將中央處理器(CPU)、存儲器(RAM,ROM)、定時/計(jì)數(shù)器和各種接口電路都集成到一塊集成電路芯片上的微型計(jì)算機(jī)[1-2]。隨著計(jì)算機(jī)技術(shù)尤其是單片機(jī)技術(shù)的發(fā)展,人們已越來越多地采用單片機(jī)來對一些工業(yè)控制系統(tǒng)中如溫度、濕度等參數(shù)進(jìn)行檢測和控制。PC機(jī)具有強(qiáng)大的監(jiān)控和管理功能,而單片機(jī)則具有快速及靈活的控制特點(diǎn),通過PC機(jī)的RS 232串行接口與外部設(shè)備進(jìn)行通信,是許多測控系統(tǒng)中常用的一種通信解決方案。因此如何實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的通信具有非常重要的現(xiàn)實(shí)意義。針對一些遠(yuǎn)距離控制或者是危險性比較高的數(shù)據(jù)采集和控制的應(yīng)用情況,本文主要介紹一種用雙工方式實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的串行通信。
1 設(shè)計(jì)方案
為了通過串口實(shí)現(xiàn)PC機(jī)與單片機(jī)間的雙工通信,可有如下設(shè)計(jì)方案。
(1) 設(shè)計(jì)方案一:有線傳輸[3]
此方案是指PC機(jī)與單片機(jī)之間通過電纜線傳輸數(shù)據(jù)。有線傳輸?shù)膬?yōu)勢是性能比較穩(wěn)定,調(diào)試簡單,而不足之處在于它的應(yīng)用范圍不夠廣、性能不夠好,而且傳輸距離受限,這樣就大大影響了系統(tǒng)的應(yīng)用范圍。
(2) 設(shè)計(jì)方案二:無線傳輸
此方案是指PC機(jī)與單片機(jī)通過無線信道傳輸數(shù)據(jù)。無線傳輸?shù)淖畲髢?yōu)勢是應(yīng)用范圍廣,受距離約束較小,在一定范圍內(nèi)可以不用考慮距離問題,還可以應(yīng)用在一些高溫、危險的場合。
因此,本文選用無線傳輸方案通過串口來實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的雙工通信。無線傳輸可以用不同的方式來實(shí)現(xiàn),常用的有紅外方式[4]、藍(lán)牙方式,其他的還有射頻收發(fā)芯片如CC1100,PT2262/2272芯片等。
紅外通信是利用950 nm近紅外波段的紅外線作為傳遞信息的載體,通過紅外光在空中的傳播來傳遞信息,由紅外發(fā)射器和接收器實(shí)現(xiàn)。發(fā)射端將二進(jìn)制數(shù)字信號調(diào)制成某一頻率的脈沖序列,經(jīng)電光轉(zhuǎn)換電路,驅(qū)動紅外發(fā)射管以光脈沖的形式發(fā)送到空中。接收端將接收到的光脈沖轉(zhuǎn)換成電信號,再經(jīng)解調(diào)和譯碼后恢復(fù)出原二進(jìn)制數(shù)字信號。其最大優(yōu)點(diǎn)是:不易被人發(fā)現(xiàn)和截獲,保密性強(qiáng);幾乎不會受到電氣、天電、人為干擾,抗干擾性強(qiáng)。此外,紅外線通信機(jī)體積小、重量輕、結(jié)構(gòu)簡單、價格低廉。不足之處在于它必須在視距內(nèi)通信,且傳播受天氣的影響。
CC1100是一種低成本真正單片的UHF收發(fā)器,為低功耗無線應(yīng)用而設(shè)計(jì)。CC1100構(gòu)建高性能射頻無線數(shù)據(jù)傳輸技術(shù)方案應(yīng)用無線通訊模塊采用透明模式進(jìn)行通訊,即所收即所發(fā),具有通訊距離遠(yuǎn)、低功耗、接口靈活等優(yōu)點(diǎn),使用者無需編碼和控制。CC1100通信距離(視距)大于300 m,而且能隔墻遙控,操作方便。
綜合上述分析,本文介紹的是采用CC1100收發(fā)器通過串口來實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的雙工無線通信。
2 硬件設(shè)計(jì)
2.1 總體框圖
此雙工無線通信系統(tǒng)的總體框圖如圖1所示。由于此系統(tǒng)可實(shí)現(xiàn)雙工通信,因此它可分為兩個通信過程:PC機(jī)(上位機(jī))通過上位機(jī)程序界面發(fā)送數(shù)據(jù)給單片機(jī),并送給液晶屏顯示相應(yīng)的數(shù)據(jù);鍵盤輸入數(shù)據(jù)傳給單片機(jī),接著發(fā)送給PC機(jī),并在PC機(jī)上位機(jī)程序界面上顯示出來。
圖1 系統(tǒng)的總體框圖
2.2 實(shí)現(xiàn)電路圖
對應(yīng)于上述框圖的電路實(shí)物圖如圖2所示。其左右兩個電路分別對應(yīng)上述框圖中的左右兩個部分。總體來說,它包括電平轉(zhuǎn)換電路、單片機(jī)處理部分、無線收發(fā)部分(CC1100收發(fā)器)、液晶顯示模塊和鍵盤輸入模塊五個部分。
圖2 電路實(shí)物圖
(1) 電平轉(zhuǎn)換電路
PC機(jī)的串行口采用的是標(biāo)準(zhǔn)的RS 232接口,單片機(jī)的串行口電平是TTL電平,而TTL電平特性與RS 232的電氣特性不匹配,因此為了使單片機(jī)的串行口能與RS 232接口通信,必須將串行口的輸入/輸出電平進(jìn)行轉(zhuǎn)換。通常用MAX232芯片來完成電平轉(zhuǎn)換[5-6]。
(2) 單片機(jī)部分
單片機(jī)部分包括單片機(jī)、復(fù)位電路和時鐘電路。它將串口送過來的數(shù)據(jù)傳輸給CC1100收發(fā)器,或者將CC1100收發(fā)器傳送過來的數(shù)據(jù)通過串口給PC機(jī)。單片機(jī)的復(fù)位電路和時鐘電路是單片機(jī)工作所必需的。
(3) 無線收發(fā)部分
無線收發(fā)部分由CC1100收發(fā)器組成,它將接收到的數(shù)據(jù)通過天線發(fā)射出去或從天線接收發(fā)送過來的數(shù)據(jù)。
(4) 液晶顯示模塊
此處選用LCD1602液晶模塊,其內(nèi)部的字符發(fā)生存儲器已經(jīng)存儲了160個不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號和日文假名等,每一個字符都有一個固定的代碼。
(5) 鍵盤輸入模塊
在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構(gòu)成4×4=16個按鍵,比之直接將端口用于鍵盤多出了一倍。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是比較好的。矩陣式鍵盤的按鍵識別方法為行掃描法。此處選用4×4的矩陣鍵盤來輸入0~9的數(shù)字和a~f的字母。
3 軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)方面包括上位機(jī)程序和單片機(jī)程序的設(shè)計(jì)。上位機(jī)程序要實(shí)現(xiàn)的功能是在電腦上顯示一個操作界面,它可代替串口調(diào)試工具。
3.1 上位機(jī)程序
上位機(jī)程序可以用VB[7],VC++[8]等語言來編程,但本方案采用比較方便的C#來編程實(shí)現(xiàn),其流程圖如圖3所示。
圖3 上位機(jī)程序流程圖
3.2 單片機(jī)程序
單片機(jī)程序主要包括主程序、單片機(jī)發(fā)送子程序、單片機(jī)接收子程序、液晶顯示子程序、鍵盤輸入子程序五部分,均采用C語言進(jìn)行模塊化編程。由于篇幅原因,下面只給出了單片機(jī)發(fā)送子程序和接收子程序,如圖4,圖5所示。
圖4 單片機(jī)發(fā)送子程序
圖5 單片機(jī)接收子程序
4 測試結(jié)果
測試時,連接好硬件打開串行口COM1,并設(shè)波特率為9 600 b/s。單片機(jī)發(fā)送字符串“675”給PC機(jī),其液晶顯示如圖6所示,相應(yīng)的PC機(jī)界面顯示如圖7所示。PC機(jī)發(fā)送“69asd”給單片機(jī),液晶屏上即可接收到“69asd”,如圖8,圖9所示。測試結(jié)果說明:基于串行口的PC機(jī)與單片機(jī)之間的雙工無線通信是切實(shí)可行的,而且無線傳輸?shù)木嚯x至少可達(dá)到100 m。
圖6 單片機(jī)鍵盤輸入“675”時液晶顯示
5 結(jié) 語
采用CC1100收發(fā)器通過串口實(shí)現(xiàn)了PC機(jī)與單片機(jī)之間的雙工無線通信。此系統(tǒng)可應(yīng)用到一些遠(yuǎn)距離控制或者是危險性比較高的數(shù)據(jù)采集和控制的場合,用
于采集溫度、濕度等參數(shù)[9],還可擴(kuò)展到無線傳感器網(wǎng)絡(luò)領(lǐng)域[10],實(shí)現(xiàn)諸如無線抄表、智能家居等系統(tǒng)。
圖7 PC機(jī)界面上顯示“675”
圖8 PC機(jī)顯示鍵盤輸入的“69asd”
圖9 液晶屏上顯示接收到“69asd”
參考文獻(xiàn)
[1]萬文略.單片計(jì)算機(jī)及其應(yīng)用[M].重慶:重慶大學(xué)出版社,2005.
[2]劉文濤.單片機(jī)應(yīng)用開發(fā)實(shí)例[M].北京:清華大學(xué)出版社,2005.
[3]李群芳,張士軍,黃建.單片微型計(jì)算機(jī)與接口技術(shù)[M].北京:電子工業(yè)出版社,2005.
[4]周文舉.PC機(jī)串口與多個單片機(jī)紅外無線通信的實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2004,17(7):29-31.
[5]劉艷玲.采用MAX232實(shí)現(xiàn)MCS-51單片機(jī)與PC機(jī)的通信[J].天津理工大學(xué)學(xué)報(bào),1999,15(2):57-61.
[6]徐速,李盛渝.單片機(jī)與PC機(jī)的串口通信[J].重慶工商大學(xué)學(xué)報(bào):自然科學(xué)版,2005,22(4):360-363.
[7]孫瑞杰,吳曉宇,張瑜,等.用VB實(shí)現(xiàn)PC機(jī)與MSP430單片機(jī)串行通信的研究[J].計(jì)量與測試技術(shù),2009,36(11):42-45.
[8]曾自強(qiáng),王玉菡.用VC++實(shí)現(xiàn)單片機(jī)與PC機(jī)串口通信的三種方法[J].自動化與儀器儀表,2005(3):60-63.
[9]牛永超,馬孝義.基于CC1100的溫室溫濕度監(jiān)測系統(tǒng)[J].農(nóng)機(jī)化研究,2009(8):90-92.
[10]陸忠實(shí),沈軍,羅護(hù),等.聲傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的硬件系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2009(8):23-25.