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