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