提問者: fdsfoyffj 2014-01-07 00:00
為什么會出現(xiàn)串口通信,I2C通信,SPI通信,UART通信等等這么多的通信協(xié)議,既然是想統(tǒng)一通信規(guī)則,為什么又出現(xiàn)這么多種,是不是各有各的優(yōu)勢,或是在某種要求下應(yīng)運而生,懂的老師請不吝賜教,
1、串口通信協(xié)議。串口是計算機上一種非常通用的設(shè)備通信協(xié)議(不要與通用串行總線Universal SerialBus或者USB混淆)。大多數(shù)計算機包含兩個基于RS232的串口。串口同時也是儀器儀表設(shè)備通用的通信接口;很多GPIB兼容的設(shè)備也帶有RS-232口。同時,串口通信協(xié)議也可以用于獲取遠程采集設(shè)備的數(shù)據(jù)。串口通信的概念非常簡單,串口按位(bit)發(fā)送和接收字節(jié)。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。它很簡單并且能夠?qū)崿F(xiàn)遠距離通信。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設(shè)備線總長不得超過20米,并且任意兩個設(shè)備間的長度不得超過2米;而對于串口而言,長度可達1200米。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時在另一根線上接收數(shù)據(jù)。其他線用于握手,但是不是必須的。串口通信最重要的參數(shù)是比特率、數(shù)據(jù)位、停止位和奇偶校驗。對于兩個進行通信的端口,這些參數(shù)必須匹配:a,比特率:這是一個衡量通信速度的參數(shù)。它表示每秒鐘傳送的bit的個數(shù)。例如300波特表示每秒鐘發(fā)送300個bit。當(dāng)我們提到時鐘周期時,就是指比特率,例如如果協(xié)議需要4800波特率,那么時鐘是4800Hz。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800Hz。通常電話線的比特率為14400,28800和36600。比特率可以遠遠大于這些值,但是波特率和距離成反比。高比特率常常用于放置的很近的儀器間的通信,典型的例子就是GPIB設(shè)備的通信。b,數(shù)據(jù)位:這是衡量通信中實際數(shù)據(jù)位的參數(shù)。當(dāng)計算機發(fā)送一個信息包,實際的數(shù)據(jù)不會是8位的,標(biāo)準(zhǔn)的值是5、7和8位。如何設(shè)置取決于你想傳送的信息。比如,標(biāo)準(zhǔn)的ASCII碼是0~127(7位)。擴展的ASCII碼是0~255(8位)。如果數(shù)據(jù)使用簡單的文本(標(biāo)準(zhǔn)ASCII碼),那么每個數(shù)據(jù)包使用7位數(shù)據(jù)。每個包是指一個字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗位。由于實際數(shù)據(jù)位取決于通信協(xié)議的選取,術(shù)語"包"指任何通信的情況。c,停止位:用于表示單個包的最后一位。典型的值為1,1.5和2位。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢。d,奇偶校驗位:在串口通信中一種簡單的檢錯方式。有四種檢錯方式:偶、奇、高和低。當(dāng)然沒有校驗位也是可以的。對于偶和奇校驗的情況,串口會設(shè)置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)邏輯高位。例如,如果數(shù)據(jù)是011,那么對于偶校驗,校驗位為0,保證邏輯高的位數(shù)是偶數(shù)個。如果是奇校驗,校驗位為1,這樣就有3個邏輯高位。高位和低位不真正的檢查數(shù)據(jù),簡單置位邏輯高或者邏輯低校驗。這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。2、I2C通信協(xié)議。工作速率有100K和400K兩種; 支持多機通訊; 支持多主控模塊,但同一時刻只允許有一個主控; 由數(shù)據(jù)線SDA和時鐘SCL構(gòu)成的串行總線; 每個電路和模塊都有唯一的地址; 每個器件可以使用獨立電源二. 基本工作原理: 以啟動信號START來掌管總線,以停止信號STOP來釋放總線; 每次通訊以START開始,以STOP結(jié)束; 啟動信號START后緊接著發(fā)送一個地址字節(jié),其中7位為被控器件的地址碼,一位為讀/寫控制位R/W,R. /W位為0表示由主控向被控器件寫數(shù)據(jù),R/W為1表示由主控向被控器件讀數(shù)據(jù); 當(dāng)被控器件檢測到收到的地址與自己的地址相同時,在第9個時鐘期間反饋應(yīng)答信號; 每個數(shù)據(jù)字節(jié)在傳送時都是高位(MSB)在前;寫通訊過程: 1. 主控在檢測到總線空閑的狀況下,首先發(fā)送一個START信號掌管總線; 2. 發(fā)送一個地址字節(jié)(包括7位地址碼和一位R/W); 3. 當(dāng)被控器件檢測到主控發(fā)送的地址與自己的地址相同時發(fā)送一個應(yīng)答信號(ACK); 4. 主控收到ACK后開始發(fā)送第一個數(shù)據(jù)字節(jié); 5. 被控器收到數(shù)據(jù)字節(jié)后發(fā)送一個ACK表示繼續(xù)傳送數(shù)據(jù),發(fā)送NACK表示傳送數(shù)據(jù)結(jié)束; 6. 主控發(fā)送完全部數(shù)據(jù)后,發(fā)送一個停止位STOP,結(jié)束整個通訊并且釋放總線;讀通訊過程: 1. 主控在檢測到總線空閑的狀況下,首先發(fā)送一個START信號掌管總線; 2. 發(fā)送一個地址字節(jié)(包括7位地址碼和一位R/W); 3. 當(dāng)被控器件檢測到主控發(fā)送的地址與自己的地址相同時發(fā)送一個應(yīng)答信號(ACK); 4. 主控收到ACK后釋放數(shù)據(jù)總線,開始接收第一個數(shù)據(jù)字節(jié); 5. 主控收到數(shù)據(jù)后發(fā)送ACK表示繼續(xù)傳送數(shù)據(jù),發(fā)送NACK表示傳送數(shù)據(jù)結(jié)束; 6. 主控發(fā)送完全部數(shù)據(jù)后,發(fā)送一個停止位STOP,結(jié)束整個通訊并且釋放總線;四. 總線信號時序分析 1. 總線空閑狀態(tài) SDA和SCL兩條信號線都處于高電平,即總線上所有的器件都釋放總線,兩條信號線各自的上拉電阻把電平拉高; 2. 啟動信號START 時鐘信號SCL保持高電平,數(shù)據(jù)信號SDA的電平被拉低(即負(fù)跳變)。啟動信號必須是跳變信號,而且在建立該信號前必修保證總線處于空閑狀態(tài); 3. 停止信號STOP 時鐘信號SCL保持高電平,數(shù)據(jù)線被釋放,使得SDA返回高電平(即正跳變),停止信號也必須是跳變信號。 4. 數(shù)據(jù)傳送 SCL線呈現(xiàn)高電平期間,SDA線上的電平必須保持穩(wěn)定,低電平表示0(此時的線電壓為地電壓),高電平表示1(此時的電壓由元器件的VDD決定)。只有在SCL線為低電平期間,SDA上的電平允許變化。 5. 應(yīng)答信號ACK I2C總線的數(shù)據(jù)都是以字節(jié)(8位)的方式傳送的,發(fā)送器件每發(fā)送一個字節(jié)之后,在時鐘的第9個脈沖期間釋放數(shù)據(jù)總線,由接收器發(fā)送一個ACK(把數(shù)據(jù)總線的電平拉低)來表示數(shù)據(jù)成功接收。 6. 無應(yīng)答信號NACK 在時鐘的第9個脈沖期間發(fā)送器釋放數(shù)據(jù)總線,接收器不拉低數(shù)據(jù)總線表示一個NACK,NACK有兩種用途: a. 一般表示接收器未成功接收數(shù)據(jù)字節(jié); b. 當(dāng)接收器是主控器時,它收到最后一個字節(jié)后,應(yīng)發(fā)送一個NACK信號,以通知被控發(fā)送器結(jié)束數(shù)據(jù)發(fā)送,并釋放總線,以便主控接收器發(fā)送一個停止信號STOP。五. 尋址約定 地址的分配方法有兩種: 1. 含CPU的智能器件,地址由軟件初始化時定義,但不能與其它的器件有沖突; 2. 不含CPU的非智能器件,由廠家在器件內(nèi)部固化,不可改變。 高7位為地址碼,其分為兩部分: 1. 高4位屬于固定地址不可改變,由廠家固化的統(tǒng)一地址; 2. 低三位為引腳設(shè)定地址,可以由外部引腳來設(shè)定(并非所有器件都可以設(shè)定);3、SPI通信協(xié)議。SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設(shè)備和一個或多個從設(shè)備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入)、SDO(數(shù)據(jù)輸出)、SCLK(時鐘)、CS(片選)。(1)SDO – 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入;(2)SDI – 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出;(3)SCLK – 時鐘信號,由主設(shè)備產(chǎn)生;(4)CS – 從設(shè)備使能信號,由主設(shè)備控制。其中,CS是控制芯片是否被選中的,也就是說只有片選信號為預(yù)先規(guī)定的使能信號時(高電位或低電位),對此芯片的操作才有效。這就允許在同一總線上連接多個SPI設(shè)備成為可能。接下來就負(fù)責(zé)通訊的3根線了。通訊是通過數(shù)據(jù)交換完成的,這里先要知道SPI是串行通訊協(xié)議,也就是說數(shù)據(jù)是一位一位的傳輸?shù)摹_@就是SCLK時鐘線存在的原因,由SCLK提供時鐘脈沖,SDI,SDO則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過 SDO線,數(shù)據(jù)在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時鐘信號的改變(上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。要注意的是,SCLK信號線只由主設(shè)備控制,從設(shè)備不能控制信號線。同樣,在一個基于SPI的設(shè)備中,至少有一個主控設(shè)備。這樣傳輸?shù)奶攸c:這樣的傳輸方式有一個優(yōu)點,與普通的串行通訊不同,普通的串行通訊一次連續(xù)傳送至少8位數(shù)據(jù),而SPI允許數(shù)據(jù)一位一位的傳送,甚至允許暫停,因為SCLK時鐘線由主控設(shè)備控制,當(dāng)沒有時鐘跳變時,從設(shè)備不采集或傳送數(shù)據(jù)。也就是說,主設(shè)備通過對SCLK時鐘線的控制可以完成對通訊的控制。SPI還是一個數(shù)據(jù)交換協(xié)議:因為SPI的數(shù)據(jù)輸入和輸出線獨立,所以允許同時完成數(shù)據(jù)的輸入和輸出。不同的SPI設(shè)備的實現(xiàn)方式不盡相同,主要是數(shù)據(jù)改變和采集的時間不同,在時鐘信號上沿或下沿采集有不同定義,具體請參考相關(guān)器件的文檔。最后,SPI接口的一個缺點:沒有指定的流控制,沒有應(yīng)答機制確認(rèn)是否接收到數(shù)據(jù)。SPI的片選可以擴充選擇16個外設(shè),這時PCS輸出=NPCS,說NPCS0~3接4-16譯碼器,這個譯碼器是需要外接4-16譯碼器,譯碼器的輸入為NPCS0~3,輸出用于16個外設(shè)的選擇。4、UART通信協(xié)議。UART是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實現(xiàn)全雙工傳輸和接收。在嵌入式設(shè)計中,UART用來主機與輔助設(shè)備通信,如汽車音響與外接AP之間的通信,與PC機通信包括與監(jiān)控調(diào)試器和其它器件,如EEPROM通信。計算機內(nèi)部采用并行數(shù)據(jù),不能直接把數(shù)據(jù)發(fā)到Modem,必須經(jīng)過UART整理才能進行異步傳輸,其過程為:CPU先把準(zhǔn)備寫入串行設(shè)備的數(shù)據(jù)放到UART的寄存器(臨時內(nèi)存塊)中,再通過FIFO(First Input First Output,先入先出隊列)傳送到串行設(shè)備,若是沒有FIFO,信息將變得雜亂無章,不可能傳送到Modem。它是用于控制計算機與串行設(shè)備的芯片。有一點要注意的是,它提供了RS-232C數(shù)據(jù)終端設(shè)備接口,這樣計算機就可以和調(diào)制解調(diào)器或其它使用RS-232C接口的串行設(shè)備通信了。作為接口的一部分,UART還提供以下功能:將由計算機內(nèi)部傳送過來的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流。將計算機外部來的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計算機內(nèi)部并行數(shù)據(jù)的器件使用。在輸出的串行數(shù)據(jù)流中加入奇偶校驗位,并對從外部接收的數(shù)據(jù)流進行奇偶校驗。在輸出數(shù)據(jù)流中加入啟停標(biāo)記,并從接收數(shù)據(jù)流中刪除啟停標(biāo)記。處理由鍵盤或鼠標(biāo)發(fā)出的中斷信號(鍵盤和鼠標(biāo)也是串行設(shè)備)。可以處理計算機與外部串行設(shè)備的同步管理問題。有一些比較高檔的UART還提供輸入輸出數(shù)據(jù)的緩沖區(qū),比較新的UART是16550,它可以在計算機需要處理數(shù)據(jù)前在其緩沖區(qū)內(nèi)存儲16字節(jié)數(shù)據(jù),而通常的UART是8250。如果您購買一個內(nèi)置的調(diào)制解調(diào)器,此調(diào)制解調(diào)器內(nèi)部通常就會有16550 UART。UART作為異步串口通信協(xié)議的一種,工作原理是將傳輸數(shù)據(jù)的每個字符一位接一位地傳輸。其中各位的意義如下:起始位:先發(fā)出一個邏輯"0"的信號,表示傳輸字符的開始。資料位:緊接著起始位之后。資料位的個數(shù)可以是4、5、6、7、8等,構(gòu)成一個字符。通常采用ASCII碼。從最低位開始傳送,靠時鐘定位。奇偶校驗位:資料位加上這一位后,使得"1"的位數(shù)應(yīng)為偶數(shù)(偶校驗)或奇數(shù)(奇校驗),以此來校驗資料傳送的正確性。停止位:它是一個字符數(shù)據(jù)的結(jié)束標(biāo)志。可以是1位、1.5位、2位的高電平。 由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機校正時鐘同步的機會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢。空閑位:處于邏輯"1"狀態(tài),表示當(dāng)前線路上沒有資料傳送。波特率:是衡量資料傳送速率的指標(biāo)。表示每秒鐘傳送的符號數(shù)(symbol)。一個符號代表的信息量(比特數(shù))與符號的階數(shù)有關(guān)。例如資料傳送速率為120字符/秒,傳輸使用256階符號,每個符號代表8bit,則波特率就是120baud,比特率是120*8=960bit/s。這兩者的概念很容易搞錯。
回答者:safe_gwm2016-10-25 00:00
啟動前長鳴是提醒站臺人員火車即將啟動,注意安全 一長聲:1、列車起動或機車車輛前進時(雙機牽引或使用補機時,本務(wù)機車鳴笛后,補機應(yīng)回答,本務(wù)機車再鳴笛一長聲后起動)2、接近車站、鳴笛標(biāo)、曲線、道口、橋梁、隧道、行人
提問者: wodfsdfeho75 2013-07-05
展館內(nèi)容 很大很好玩 一天逛不完 中國科技館新館展覽面積約4萬平方米,分布著科學(xué)樂園、華夏之光、探索與發(fā)現(xiàn)、科技與生活、挑戰(zhàn)與未來等5個主題展廳和公共空間科普展示區(qū),加上球幕影院、巨幕影院、動感影院、4D影院等4
提問者: tyyhujh112 2013-05-03
起重吊運指揮信號 GB 5082-1985 1985-07-01實施 引 言 為確保起重吊運安全,防止發(fā)生事故,適應(yīng)科學(xué)管理的需要,特制訂本標(biāo)準(zhǔn)。 本標(biāo)準(zhǔn)對現(xiàn)場指揮人員和起重機司機所使用的基本信號和有
提問者: orange951159 2013-06-18
這個還是去專業(yè)的汽車影音網(wǎng)上面問問高手們,你也可以進去參考一下其他店家的試音室設(shè)計,在改裝中,試音室也是很關(guān)鍵的。。。
提問者: wanglfr 2013-05-21
須使用音頻切換器,如果沒有音頻切換器的話那么就必須先安裝導(dǎo)航,全部接好后在安裝CD機。電源方面CD和導(dǎo)航可以使用同一根線,但是音頻不能接在一起,要把CD的AUX輸出接入導(dǎo)航的AUX輸入接口,如果你的CD機沒有AUX輸出接
提問者: xixixizizi123 2013-03-10
一長聲:1、列車起動或機車車輛前進時(雙機牽引或使用補機時,本務(wù)機車鳴笛后,補機應(yīng)回答,本務(wù)機車再鳴笛一長聲后起動)2、接近車站、鳴笛標(biāo)、曲線、道口、橋梁、隧道、行人、施工地點、黃色信號、引導(dǎo)信號、容許信號或天氣不良時3
提問者: Zoho7 2015-04-04