任毅
摘要 在單片機通信技術(shù)應(yīng)用中,紅外線通信技術(shù)、?I2C總線通信技術(shù)、串口通信技術(shù)都是單片機常用的通信技術(shù)。單片機在工作中不僅是程序?qū)斎搿⑤敵龆丝诘目刂?,還要將數(shù)據(jù)和相關(guān)設(shè)備進行通信。筆者從單片機常用的幾種通信技術(shù)做了介紹和分析,幾種通信方式各具特點,選擇一種更符合工作場景需求的通信方式才是最佳的通信方式。
【關(guān)鍵詞】單片機通信技術(shù) 紅外線通信 I2C總線通信 串口通信
隨著生產(chǎn)技術(shù)水平的不斷提高,電子產(chǎn)品朝著微型化、智能化的方向迅速發(fā)展,工業(yè)機器人、智能家居、互聯(lián)網(wǎng)+等技術(shù)改變了人們的工作和生活方式,單片機迎來了高速的發(fā)展。在智能化的通信時代,單片機更要密切的和周邊設(shè)備進行有效的通信,紅外線通信方式、總線通信方式、串口通訊方式都是單片機通信技術(shù)的常用方式。
1 紅外通信技術(shù)
紅外線通信技術(shù)是利用了紅外線的發(fā)射、接收技術(shù),實現(xiàn)了遠距離、無線控制,它有著設(shè)計簡單、價格便宜等優(yōu)點。
紅外線是一種電磁波,波長在750 nm到1 mm之間。紅外遙控器由鍵盤、振蕩器、單片機和紅外遙控器使用紅外發(fā)光二極管(IRLED)產(chǎn)生紅外線,紅外發(fā)光二極管組成。鍵盤用于輸入指令,振蕩器產(chǎn)生可靠的頻率穩(wěn)定的信號,單片機檢測鍵盤上按鍵的狀態(tài),并對紅外信號進行調(diào)制,由發(fā)光二極管發(fā)出紅外線。
紅外接收器將接收到的紅外線轉(zhuǎn)換成電信號,然后交給單片機進行解碼,從而接收到紅外線遙控器發(fā)送的數(shù)據(jù)或指令,達到用紅外遙控器控制單片機工作的目的。紅外線電磁波不能被遮擋,也不能穿透房間,然而墻壁和天花板會反射紅外線,由于電子產(chǎn)品中紅外線的編碼一般會不同,不會對同房間相鄰設(shè)備造成干擾。紅外線接收頭可按入單片機普通I/O端口上,利用程序進行端口掃描通信,成本低、電路簡單、具有性價比高的特點,現(xiàn)廣泛應(yīng)用于家用電子產(chǎn)品中。
2 12C總線通信技術(shù)
12C總線是由飛利浦公司開發(fā)的一種簡單、雙向二線制同步串行總線。它只需要兩根線即可在連接于總線上的器件之間傳送信息。主器件用于啟動總線傳送數(shù)據(jù),并產(chǎn)生時鐘以開放傳送的器件,此時任何被尋址的器件均被認為是從器件在總線上主和從、發(fā)和收的關(guān)系不是恒定的,而取決于此時數(shù)據(jù)傳送方向。如果主機要發(fā)送數(shù)據(jù)給從器件,則主機首先尋址從器件,然后主動發(fā)送數(shù)據(jù)至從器件,最后由主機終止數(shù)據(jù)傳送;如果主機要接收從器件的數(shù)據(jù),首先由主器件尋址從器件,然后主機接收從器件發(fā)送的數(shù)據(jù),最后由主機終止接收過程。在這種情況下主機負責(zé)產(chǎn)生定時時鐘和終止數(shù)據(jù)傳送。
I2C總線中只需要一根數(shù)據(jù)線和一根時鐘線,總線接口已經(jīng)集成在芯片內(nèi)部,不需要特殊的接口電路,SCL(串行時鐘線)和SDA(串行數(shù)據(jù)線)都是雙向I/O線,接口電路為開漏輸出,需通過上拉電阻接電源VCC。I2C總線簡化了硬件電路PCB布線,降低了系統(tǒng)成本,提高了系統(tǒng)可靠性。在單片機中用兩只I/O端口分別作為時鐘線SCL和數(shù)據(jù)線SDA,通過單片機內(nèi)部程序去控制兩端口對I2C總線上的設(shè)備進行啟動、器件尋址、數(shù)據(jù)傳輸、應(yīng)答、停止等時序控制,從而對I2C總線上的器件進行通信。單片機應(yīng)用電路中,24008系列存儲器中就是利用I2C總線控制技術(shù)實現(xiàn)的。
I2C總線是一個真正的多主機總線,如果兩個或多個主機同時初始化數(shù)據(jù)傳輸,可以通過沖突檢測和仲裁防止數(shù)據(jù)破壞,每個連接到總線上的器件都有唯一的地址,任何器件既可以作為主機也可以作為從機,但同一時刻只允許有一個主機。數(shù)據(jù)傳輸和地址設(shè)定由軟件設(shè)定,非常靈活。總線上的器件增加和刪除不影響其他器件正常工作。
3 串口通信技術(shù)
串行通信是指設(shè)備通信時按位(bit)發(fā)送和接收二進制數(shù)據(jù)的通信方式。單片機用串口RXD、RXD端口、地線和其它設(shè)備串口進行通信,由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。串行通信方式使用的數(shù)據(jù)線少,在通信中可以節(jié)約通信成本,但其傳輸速度比并行傳輸?shù)汀4谕ㄐ抛钪匾膮?shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗等。對于兩個進行通信的端口,這些參數(shù)必須匹配,單片機和其它通信設(shè)備才能準確的進行通信。目前常用的串口通信方式有RS-232C、RS-485等。
3.1 上位機PC和單片機的通信
上位機是可以直接發(fā)出控制命令的計算機。下位機是直接控制設(shè)備獲取設(shè)備狀況的控制器,如單片機。上位機發(fā)出命令給下位機,下位機得到指令后控制對應(yīng)設(shè)備工作,同時將傳感器等采集到的數(shù)據(jù)反饋給上位機,上位機以實現(xiàn)對檢測量的實時監(jiān)控,如屏幕上顯示各種信號變化(液壓,水位,溫度、工作狀態(tài)等)信息。由于上位機PC串口的電平與單片機串口的邏輯電平不同,兩者之間不能直接連接,需使用RS-232C接口芯片MAX232進行電平轉(zhuǎn)換。MAX232不僅解決了電平匹配的問題,還可以增大通信距離。但如果要使用更高的通信速率和更遠的距離,可以使用RS-485接口和MAX485驅(qū)動芯片來實現(xiàn)。如果電腦上沒有串口接口,可使用USB轉(zhuǎn)串口連接線,實現(xiàn)上位機和單片機串口的通訊。上位機可以通過VB、C#等編程語言編寫上位機程序,上位機以良好的操作介面方便操作。下位機可以用C語言編程,將單片機連接的各種傳感器采集到的數(shù)據(jù),傳遞給上位機,上位機可以實時監(jiān)控到傳感器采集到的數(shù)據(jù)和控制終端設(shè)備的運行狀態(tài)。上位機PC和單片機的通信,上位機圖形介面操作簡單直觀,但不便于移動,常使用于設(shè)備相對固定的場合。
3.2 藍牙設(shè)備和單片機的通信
藍牙通信技術(shù)是一種支持設(shè)備短距離通信(一般是10m之內(nèi))的低功耗、低成本無線電技術(shù)。能在包括移動電話、PDA、無線耳機、筆記本電腦、相關(guān)外設(shè)等眾多設(shè)備之間進行無線信息交換。它利用短程無線鏈路取代專用電纜,不但免去相互之間連接的麻煩,而且便于人們在室內(nèi)或戶外流動操作。具有廣泛的應(yīng)用前景,正受到全球各界的廣泛關(guān)注。藍牙技術(shù)己從萌芽期進入了壯大發(fā)展期,在無線通信、消費類電子和汽車電子以及工業(yè)控制領(lǐng)域得到廣泛的應(yīng)用。類電子和汽車電子以及工業(yè)控制領(lǐng)域得到廣泛的應(yīng)用。藍牙接收集成電路由和射頻(RF)、基帶(BB)和鏈路管理(LM)構(gòu)成。在單片機終端采用藍牙接收集成模塊常有四個接線端,兩個端口接電源,通信端口中RXD與單片機TXD相連,通信端口中TXD與單片機RXD相連,即讀寫端應(yīng)交叉連接。在單片機端還應(yīng)編寫程序控制藍牙集成電路,實現(xiàn)單片機和藍牙集成電路的通信。由于藍牙可以無線通信,故常應(yīng)用于移動終端的控制,如智能家居中手機終端的APP軟件通過藍牙功能,可以連接到藍牙集成電路中,藍牙集成電路的串口可以將信息傳送到單片機,實現(xiàn)了手機終端可以直接對單片機及控制電路進行有效的控制,實現(xiàn)了手機藍牙和單片機的串口間的通信,常用于智能家居的控制。
在自動化、智能化快速發(fā)展的今天,單片機朝著更高、更快的方向發(fā)展,新型傳感器的出現(xiàn),新技術(shù)的變革都促進了單片機通信技術(shù)的飛躍。在單片機應(yīng)用方案的設(shè)計中,穩(wěn)壓性、傳輸速率、性價比等都是需要重點考慮的因素,只用這樣才能設(shè)計出較好的項目方案。