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