PC機(jī)與單片機(jī)之間串行通信的系統(tǒng)研究與實(shí)現(xiàn)
李建霞
摘要:本文介紹了采用CCll00收發(fā)器通過串口來實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的雙工無線通信,并從軟、硬件兩個(gè)方面的設(shè)計(jì)。
關(guān)鍵詞:串行通信 單片機(jī) PC機(jī) CCll00收發(fā)器
引言
隨著計(jì)算機(jī)技術(shù)尤其是單片機(jī)技術(shù)的發(fā)展,人們已越來越多地采用單片機(jī)來對(duì)一些工業(yè)控制系統(tǒng)中如溫度、濕度等參數(shù)進(jìn)行檢測(cè)和控制。PC機(jī)具有強(qiáng)大的監(jiān)控和管理功能,而單片機(jī)則具有快速及靈活的控制特點(diǎn),通過PC機(jī)的RS 232串行接口與外部設(shè)備進(jìn)行通信,是許多測(cè)控系統(tǒng)中常用的一種通信解決方案。因此如何實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的通信具有非常重要的現(xiàn)實(shí)意義。針對(duì)一些遠(yuǎn)距離控制或者是危險(xiǎn)性比較高的數(shù)據(jù)采集和控制的應(yīng)用情況,本文主要介紹一種用雙工方式實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的串行通信。
1.單片機(jī)串行通信原理與實(shí)現(xiàn)方法
串行通信是指數(shù)據(jù)一位一位地按順序傳送。串行通信通過串行口來實(shí)現(xiàn)。在全雙工的串行通信中,僅需要一根發(fā)送線和一根接收線,串行通信可大大節(jié)省傳送線路的成本,但數(shù)據(jù)傳送速度慢。因此,串行通信適合于遠(yuǎn)距離通信。
目前,在許多單片機(jī)應(yīng)用系統(tǒng)中,上、下位機(jī)分工明確,作為下位機(jī)核心器件的單片機(jī)往往只負(fù)責(zé)數(shù)據(jù)的采集和通信,而上位機(jī)通常以基于圖形界面的Windows系統(tǒng)為操作平臺(tái),為便于查詢和保存數(shù)據(jù),還需要數(shù)據(jù)庫的支持,如在測(cè)控系統(tǒng)中使用SQL Server數(shù)據(jù)庫。
1.1 設(shè)計(jì)方案
為了通過串口實(shí)現(xiàn)PC機(jī)與單片機(jī)間的雙工通信,可有如下設(shè)計(jì)方案。
(1)設(shè)計(jì)方案一:有線傳輸
此方案是指PC機(jī)與單片機(jī)之間通過電纜線傳輸數(shù)據(jù)。有線傳輸?shù)膬?yōu)勢(shì)是性能比較穩(wěn)定,調(diào)試簡(jiǎn)單,而不足之處在于它的應(yīng)用范圍不夠廣、性能不夠好,而且傳輸距離受限,這樣就大大影響了系統(tǒng)的應(yīng)用范圍。
(2)設(shè)計(jì)方案二:無線傳輸
此方案是指PC機(jī)與單片機(jī)通過無線信道傳輸數(shù)據(jù)。無線傳輸?shù)淖畲髢?yōu)勢(shì)是應(yīng)用范圍廣,受距離約束較小,在一定范圍內(nèi)可以不用考慮距離問題,還可以應(yīng)用在一些高溫、危險(xiǎn)的場(chǎng)合。
CCll00是一種低成本真正單片的UHF收發(fā)器,為低功耗無線應(yīng)用而設(shè)計(jì)。CCll00構(gòu)建高性能射頻無線數(shù)據(jù)傳輸技術(shù)方案應(yīng)用無線通訊模塊采用透明模式進(jìn)行通訊,即所收即所發(fā),具有通訊距離遠(yuǎn)、低功耗、接口靈活等優(yōu)點(diǎn),使用者無需編碼和控制。CCll00通信距離(視距)大于300 m,而且能隔墻遙控,操作方便。
綜合上述分析,本文介紹的是采用CCll00收發(fā)器通過串口來實(shí)現(xiàn)PC機(jī)與單片機(jī)之間的雙工無線通信。
2硬件設(shè)計(jì)
2.1 總體框圖
此雙工無線通信系統(tǒng)的總體框圖如圖1所示。由于此系統(tǒng)可實(shí)現(xiàn)雙工通信,因此它可分為兩個(gè)通信過程:PC機(jī)(上位機(jī))通過上位機(jī)程序界面發(fā)送數(shù)據(jù)給單片機(jī),并送給液晶屏顯示相應(yīng)的數(shù)據(jù);鍵盤輸入數(shù)據(jù)傳給單片機(jī),接著發(fā)送給PC機(jī),并在PC機(jī)上位機(jī)程序界面上顯示出來。
轉(zhuǎn)載請(qǐng)注明來自:http://www.jinnzone.com/tongxinlw/14403.html