姓名:周崇杰? 學(xué)號(hào):16040120059? ?專業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化
轉(zhuǎn)載自:http://blog.csdn.net/jzj1993/article/details/41048585加缘,有刪節(jié)
【嵌牛導(dǎo)讀】:單片機(jī)與計(jì)算機(jī)系統(tǒng)最關(guān)鍵的莫過于信息與數(shù)據(jù)师抄,本文將重點(diǎn)介紹與之關(guān)系密切的問題——通信。
【嵌牛鼻子】:通信混蔼、接口涧尿、協(xié)議系奉。
【嵌牛提問】:人與人之間的交流可以交換信息,那危機(jī)系統(tǒng)或模塊之間是通過什么進(jìn)行數(shù)據(jù)傳輸呢姑廉?
【嵌牛正文】:
一缺亮、通信:
何為通信?在英文中桥言,通信用Communication表示萌踱,這個(gè)詞也有交流的意思葵礼。實(shí)際上,通信和交流確實(shí)是一樣的意思并鸵。不過在漢語中鸳粉,交流常用來表示人與人之間的交流;而通信一般用于比較專業(yè)正式的場合园担,也就是所謂的術(shù)語届谈。
人與人之間的交流,是信息交換的過程粉铐;微機(jī)系統(tǒng)或模塊之間的通信疼约,就是數(shù)據(jù)傳輸?shù)倪^程了。
二蝙泼、協(xié)議:
人在說話時(shí)程剥,通過聲帶振動(dòng)、口型的變化發(fā)出不同的聲音汤踏。這些聲音按照一定的規(guī)則织鲸,承載了我們所要表達(dá)的思想和信息,這套規(guī)則稱為語言溪胶。兩個(gè)人對(duì)話搂擦,需要使用兩個(gè)人都能理解的語言進(jìn)行,一個(gè)只懂中文和另一個(gè)只懂英文的人哗脖,根本沒法用語言交流(當(dāng)然可以用其他方式瀑踢,比如面部表情、肢體語言等)才避。
同樣橱夭,微機(jī)系統(tǒng)通信時(shí),也要有這樣一套雙方都遵從的規(guī)定桑逝,而這個(gè)規(guī)定被稱為協(xié)議棘劣。通信協(xié)議和接口都可以有多種,并且兩者之間存在一定的關(guān)聯(lián)楞遏。
三茬暇、接口的種類:
在微機(jī)系統(tǒng)中,為了更快速寡喝、更準(zhǔn)確糙俗、更方便的傳輸數(shù)據(jù),往往會(huì)有各種接口预鬓。
數(shù)字接口/模擬接口
這里主要討論電子形式的接口巧骚。可分為數(shù)字接口和模擬接口,數(shù)字接口用二進(jìn)制高低電平表示數(shù)據(jù)网缝,模擬接口則可以用電壓電流表示信息。模擬形式的接口蟋定,最常見的就是音頻接口粉臊,也就是耳機(jī)插座。數(shù)字形式的接口驶兜,例如我們熟悉的USB接口扼仲,前面提到單片機(jī)程序燒寫所用的串口等都是。數(shù)字接口又有很多分類抄淑,下面進(jìn)行介紹屠凶。
串行口/并行口
數(shù)字接口傳輸?shù)氖嵌M(jìn)制數(shù)據(jù),通常每8位二進(jìn)制數(shù)字組成一個(gè)字節(jié)肆资。并行口用八根線同時(shí)傳輸8位數(shù)據(jù)矗愧;而串行口則一位一位的傳輸。每隔一段時(shí)間郑原,接口上的電平按照要傳輸?shù)南乱晃粩?shù)據(jù)改變唉韭。
同樣的電平切換時(shí)間間隔下,顯然并行口更快犯犁。早期技術(shù)不夠属愤,很多設(shè)備使用并行口通信以提高速度,例如并口打印機(jī)酸役、并口的IDE硬盤等住诸。后來技術(shù)進(jìn)步了,串行口傳輸速度提上去了涣澡,由于接線少贱呐,更加方便可靠,并行口就逐步被淘汰了暑塑,USB就是串行口吼句。
備注:此處“行”的發(fā)音和“行走”中“行”的發(fā)音一致。
同步/異步接口
這個(gè)概念留到后面具體講通信協(xié)議的時(shí)候再做介紹事格。
四惕艳、模擬接口/硬件接口:
在51單片機(jī)中,傳輸數(shù)據(jù)主要利用32個(gè)IO口管腳驹愚。作為數(shù)字接口远搪,串口以及后面要介紹的I2C等,本質(zhì)都是通過IO口的高低電平實(shí)現(xiàn)的逢捺。如果對(duì)串口的協(xié)議有了解谁鳍,可以給單片機(jī)寫程序,將任意兩個(gè)IO口做成串口,和電腦進(jìn)行通信倘潜。但是事實(shí)上用到串口的時(shí)候绷柒,很少有人會(huì)這么做。
用程序?qū)崿F(xiàn)串口的方法涮因,一般叫做模擬串口废睦,或者軟件串口;而實(shí)際上常用到的是硬件串口养泡。串口是一種很基本的接口嗜湃,單片機(jī)一般都有硬件串口。
使用軟件模擬串口需要消耗很多CPU資源(也就是說CPU需要花很多時(shí)間處理串口相關(guān)的數(shù)據(jù)收發(fā)工作)澜掩。
而硬件串口根據(jù)串口協(xié)議設(shè)計(jì)好并集成在單片機(jī)中购披,也就是一個(gè)模塊,大大簡化了串口通信的軟件編程肩榕。串口發(fā)送數(shù)據(jù)需要一位一位的進(jìn)行刚陡,有了硬件串口,在軟件上只需把要發(fā)送的一個(gè)字節(jié)數(shù)據(jù)放到硬件串口相關(guān)的寄存器中株汉,硬件就會(huì)自動(dòng)一位一位的把數(shù)據(jù)發(fā)送出去橘荠。CPU的全部工作就是執(zhí)行軟件程序,這樣就大大減輕了CPU的負(fù)擔(dān)郎逃。接收數(shù)據(jù)也是類似的道理哥童。
這里又體現(xiàn)了模塊化設(shè)計(jì)中模塊可代換的特點(diǎn),甚至是軟硬件之間也可以互相代換或補(bǔ)償褒翰。讀者或許對(duì)此感到不可思議贮懈,學(xué)到原理篇就能慢慢理解這里的原因了。
五优训、ADC/DAC 模數(shù)/數(shù)模轉(zhuǎn)換器
既然接口有數(shù)字和模擬形式的朵你,那么他們之間也應(yīng)該能互相轉(zhuǎn)換。例如電腦聽音樂時(shí)揣非,CPU抡医、存儲(chǔ)器都是數(shù)字器件,結(jié)果卻能輸出模擬的聲音信號(hào)早敬。
能把模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)的器件叫做模數(shù)轉(zhuǎn)換器(ADC=Analog To Digital Converter)忌傻,反過來,數(shù)字轉(zhuǎn)模擬就是數(shù)模轉(zhuǎn)換器了(DAC=Digital-to-Analog Converter)搞监。
ADC/DAC也是兩種常見的微機(jī)系統(tǒng)模塊水孩。在STC89C52RC單片機(jī)中沒有內(nèi)置的ADC/DAC,但是可以使用外置的轉(zhuǎn)換芯片琐驴,而在STC的其他一些型號(hào)51單片機(jī)或430等單片機(jī)中往往會(huì)有內(nèi)置的轉(zhuǎn)換模塊俘种。
接口是單片機(jī)學(xué)習(xí)很重要的知識(shí)秤标。本篇關(guān)于通信接口和協(xié)議的介紹就結(jié)束了,其中的很多細(xì)節(jié)會(huì)在后面的具體學(xué)習(xí)中涉及到宙刘。