單片機小白學(xué)步(18) 單片機/計算機系統概述:通信接口與協(xié)
通信
何為通信?在英文中,通信用Communication表示,這個(gè)詞也有交流的意思。實(shí)際上,通信和交流確實(shí)是一樣的意思。不過(guò)在漢語(yǔ)中,交流常用來(lái)表示人與人之間的交流;而通信一般用于比較專(zhuān)業(yè)正式的場(chǎng)合,也就是所謂的術(shù)語(yǔ)。
本文引用地址:http://dyxdggzs.com/article/201611/318515.htm人與人之間的交流,是信息交換的過(guò)程;微機系統或模塊之間的通信,就是數據傳輸的過(guò)程了。
接口
人在用語(yǔ)言交談時(shí),需要用嘴說(shuō)話(huà),用耳朵聽(tīng),通過(guò)空氣來(lái)傳播。信息的傳遞依賴(lài)嘴巴和耳朵來(lái)進(jìn)行發(fā)送和接收。
微機系統的通信,則利用電、光等媒介。最常用的是電,表現在數字電路中,就是高低電平的變化。單片機的IO口能實(shí)現高低電平的收發(fā),認為它是一種通信接口。接口是通信所依賴(lài)的實(shí)體。
協(xié)議
人在說(shuō)話(huà)時(shí),通過(guò)聲帶振動(dòng)、口型的變化發(fā)出不同的聲音。這些聲音按照一定的規則,承載了我們所要表達的思想和信息,這套規則稱(chēng)為語(yǔ)言。兩個(gè)人對話(huà),需要使用兩個(gè)人都能理解的語(yǔ)言進(jìn)行,一個(gè)只懂中文和另一個(gè)只懂英文的人,根本沒(méi)法用語(yǔ)言交流(當然可以用其他方式,比如面部表情、肢體語(yǔ)言等)。
同樣,微機系統通信時(shí),也要有這樣一套雙方都遵從的規定,而這個(gè)規定被稱(chēng)為協(xié)議。通信協(xié)議和接口都可以有多種,并且兩者之間存在一定的關(guān)聯(lián)。
接口的種類(lèi)
在微機系統中,為了更快速、更準確、更方便的傳輸數據,往往會(huì )有各種接口。
數字接口/模擬接口
這里主要討論電子形式的接口??煞譃閿底纸涌诤湍M接口,數字接口用二進(jìn)制高低電平表示數據,模擬接口則可以用電壓電流表示信息。模擬形式的接口,最常見(jiàn)的就是音頻接口,也就是耳機插座。數字形式的接口,例如我們熟悉的USB接口,前面提到單片機程序燒寫(xiě)所用的串口等都是。數字接口又有很多分類(lèi),下面進(jìn)行介紹。
串行口/并行口
數字接口傳輸的是二進(jìn)制數據,通常每8位二進(jìn)制數字組成一個(gè)字節。并行口用八根線(xiàn)同時(shí)傳輸8位數據;而串行口則一位一位的傳輸。每隔一段時(shí)間,接口上的電平按照要傳輸的下一位數據改變。
同樣的電平切換時(shí)間間隔下,顯然并行口更快。早期技術(shù)不夠,很多設備使用并行口通信以提高速度,例如并口打印機、并口的IDE硬盤(pán)等。后來(lái)技術(shù)進(jìn)步了,串行口傳輸速度提上去了,由于接線(xiàn)少,更加方便可靠,并行口就逐步被淘汰了,USB就是串行口。
備注:此處“行”的發(fā)音和“行走”中“行”的發(fā)音一致。
同步/異步接口
這個(gè)概念留到后面具體講通信協(xié)議的時(shí)候再做介紹。
模擬接口/硬件接口
在51單片機中,傳輸數據主要利用32個(gè)IO口管腳。作為數字接口,串口以及后面要介紹的I2C等,本質(zhì)都是通過(guò)IO口的高低電平實(shí)現的。如果對串口的協(xié)議有了解,可以給單片機寫(xiě)程序,將任意兩個(gè)IO口做成串口,和電腦進(jìn)行通信。但是事實(shí)上用到串口的時(shí)候,很少有人會(huì )這么做。
用程序實(shí)現串口的方法,一般叫做模擬串口,或者軟件串口;而實(shí)際上常用到的是硬件串口。串口是一種很基本的接口,單片機一般都有硬件串口。
使用軟件模擬串口需要消耗很多CPU資源(也就是說(shuō)CPU需要花很多時(shí)間處理串口相關(guān)的數據收發(fā)工作)。
而硬件串口根據串口協(xié)議設計好并集成在單片機中,也就是一個(gè)模塊,大大簡(jiǎn)化了串口通信的軟件編程。串口發(fā)送數據需要一位一位的進(jìn)行,有了硬件串口,在軟件上只需把要發(fā)送的一個(gè)字節數據放到硬件串口相關(guān)的寄存器中,硬件就會(huì )自動(dòng)一位一位的把數據發(fā)送出去。CPU的全部工作就是執行軟件程序,這樣就大大減輕了CPU的負擔。接收數據也是類(lèi)似的道理。
這里又體現了模塊化設計中模塊可代換的特點(diǎn),甚至是軟硬件之間也可以互相代換或補償。讀者或許對此感到不可思議,學(xué)到原理篇就能慢慢理解這里的原因了。
ADC/DAC 模數/數模轉換器
既然接口有數字和模擬形式的,那么他們之間也應該能互相轉換。例如電腦聽(tīng)音樂(lè )時(shí),CPU、存儲器都是數字器件,結果卻能輸出模擬的聲音信號。
能把模擬信號轉換成數字信號的器件叫做模數轉換器(ADC=Analog To Digital Converter),反過(guò)來(lái),數字轉模擬就是數模轉換器了(DAC=Digital-to-Analog Converter)。
ADC/DAC也是兩種常見(jiàn)的微機系統模塊。在STC89C52RC單片機中沒(méi)有內置的ADC/DAC,但是可以使用外置的轉換芯片,而在STC的其他一些型號51單片機或430等單片機中往往會(huì )有內置的轉換模塊。
接口是單片機學(xué)習很重要的知識。本篇關(guān)于通信接口和協(xié)議的介紹就結束了,其中的很多細節會(huì )在后面的具體學(xué)習中涉及到。
=======================================================
評論