Ⅰ 單片機通信介面與通信協議有哪幾種
232居多,變體的232會有RS485,RS422等,有的也有spi,iic等串列以及列印機支持的並行介面,高端的會有CAN工業匯流排介面、乙太網絡介面、IDE介面、和usb介面等等。
通信協議通常會根據實際應用的需要來選擇。大型介面的網路有專用的結構完整功能強大的介面協議。很多初期的單片機應用只需幾條指令即可完成通信需要,所以都是自己設計通信協議的。
Ⅱ 單片機串口通信是否必須要建立通信協議單片機之間通信是否也必須建立通信協議
單片機進行串口通信,需要設置波特率和一些電氣參數(一般定義1BIT起始位,8BIT數據位,1BIT停止位,無奇偶校驗位)這些就屬於通信協議的范疇。再則,單片機接收的數據,需要進行處理,所以你必須要知道接收的數據代表的意義,這也是通信協議,只是不太嚴格的通信協議。而比較嚴格的通信協議則一般會定義起始位元組,數據位元組,校驗位元組,結束位元組等等,這點對單片機來說到不是必須的,你只要知道接收到相應的數據,能夠進行處理就好了。
Ⅲ 單片機協議是什麼
單片機通信協議
現在大部分的儀器設備都要求能過通過上位機軟體來操作,這樣方便調試,利於操作。其中就涉及到通信的過程。在實際製作的幾個設備中,筆者總結出了通信程序的通用寫法,包括上位機端和下位機端等。
1.自定義數據通信協議
這里所說的數據協議是建立在物理層之上的通信數據包格式。所謂通信的物理層就是指我們通常所用到的RS232、RS485、紅外、光纖、無線等等通信方式。在這個層面上,底層軟體提供兩個基本的操作函數:發送一個位元組數據、接收一個位元組數據。所有的數據協議全部建立在這兩個操作方法之上。
通信中的數據往往以數據包的形式進行傳送的,我們把這樣的一個數據包稱作為一幀數據。類似於網路通信中的TCPIP協議一般,比較可靠的通信協議往往包含有以下幾個組成部分:幀頭、地址信息、數據類型、數據長度、數據塊、校驗碼、幀尾。
幀頭和幀尾用於數據包完整性的判別,通常選擇一定長度的固定位元組組成,要求是在整個數據鏈中判別數據包的誤碼率越低越好。減小固定位元組數據的匹配機會,也就是說使幀頭和幀尾的特徵位元組在整個數據鏈中能夠匹配的機會最小。通常有兩種做法,一、減小特徵位元組的匹配幾率。二、增加特徵位元組的長度。通常選取第一種方法的情況是整個數據鏈路中的數據不具有隨即性,數據可預測,可以通過人為選擇幀頭和幀尾的特徵字來避開,從而減小特徵位元組的匹配幾率。使用第二種方法的情況更加通用,適合於數據隨即的場合。通過增加特徵位元組的長度減小匹配幾率,雖然不能夠完全的避免匹配的情況,但可以使匹配幾率大大減小,如果碰到匹配的情況也可以由校驗碼來進行檢測,因此這種情況在絕大多說情況下比較可靠。
地址信息主要用於多機通信中,通過地址信息的不同來識別不同的通信終端。在一對多的通信系統中,可以只包含目的地址信息。同時包含源地址和目的地址則適用於多對多的通信系統。
數據類型、數據長度和數據塊是主要的數據部分。數據類型可以標識後面緊接著的是命令還是數據。數據長度用於指示有效數據的個數。
Ⅳ 單片機通訊協議有哪些
1、單片機與其他單片機或晶元級的通訊有:RS232、IIC、SPI、並口(I/O)、DMA(如msp430、ARM);
2、單片機通過電纜與PC或其他設備通訊有:RS232、RS485、USB、CAN、光纖、乙太網;
3、單片機遠距離傳輸通訊(超過10米):RS485、CAN、乙太網等。
Ⅳ 單片機常見的封裝形式有哪些
單片機常見的封裝形式有:DIP(雙列直插式封裝)、PLCC(特殊引腳晶元封裝,要求對應插座)、QFP(四側引腳扁平封裝)、SOP(雙列小外形貼片封裝)等。
做實驗時一般選用DIP封裝的,如果選用其他封裝,用編程器編程時還要配專用的適配器。如果對系統的體積有要求,如遙控器中用的單片機,往往選用QFP和SOP封裝的。
Ⅵ 關於stc89s51單片機區別和協議問題
stc89s52是isp協議 ---那是指燒錄程序的吧?與你的應用無關。
非同步串口輸出到上位機 ---串口通信它們都是一樣的。
stc89s51有44引腳的嗎? ---可查閱宏晶單片機官網。這是比較老的型號了,記得有LQFP封裝的。
Ⅶ 單片機協議是什麼
就是把數據分成一幀一幀地傳送,一幀數據由發送起始位、數據位、校驗碼位、結束位組成,接收方按照這種數據結構解析出數據。這就是單片機通信協議。
Ⅷ 單片機與pc機的握手協議怎麼寫~!
第一步、要規定通訊波特率、起止位數、數據位、校驗位等內容
比如:波特率9600,1個起始位,1個停止位,8個數據位,無校驗位。
第二步、要確定通訊信息的執行流程,全雙工、半雙工等。最常用的是半雙工模式,也就是一問一答方式。比如:採用半雙工模式,流程如下
1、發送端發送1幀信息(發送)
2、發起端進入等待狀態,等待接收端應答;
3、接收端接收後解析該信息並完成處理,然後將處理結果回送給通訊發起端(應答)
4、發起端收到應答,回到1、。
如此循環下去。
第三步、要規定通訊幀格式。
簡單的協議格式可以是這種結構:
1、發送端: 幀頭 + 幀長度 + 信息內容 +校驗
幀頭:可以用1、2個特殊數字來表示,比如0x1B、0x10;代表一幀的起始
幀長度:用於說明本幀數據的長度,一般用1個位元組比較好
信息內容:不說了
校驗:可以將前3段的所有信息求和,這樣接收端可以進行同樣的運算然後比較結果,從而判斷接收到的信息是否有錯。
舉例:1B 10 0A 00 01 02 03 04 05 06 07 08 09 62
------- --- --------------------------------------- ---
幀頭 長度 信息 校驗和
2、接收端應答信息:
處理成功:'O'+'K'+ 應答信息長度 + 應答信息內容 + 校驗和
處理失敗:'E'+'R'+ 應答信息長度 + 應答信息內容(錯誤代碼) + 校驗和
舉例:'O'+'K' 01 09 xx
------- --- ---- ---
幀頭 長度 信息 校驗和
這種方式及數據結構在串口通訊的實際使用中應用極廣,花點時間去琢磨還是值得的。當然,上面只是提供了思路,要想保證通訊的完整性和正確性,協議中還要補充不少東西,比如接收端處理失敗怎麼辦、收發信息錯誤或不完整怎麼辦、一幀信息容不下全部數據怎麼辦等等。
具體到雙方握手,以上述模式為例:
發送端發送:1B 10 01 00 2C
------------- ---- ----- -----
幀頭 長度 握手命令 校驗和
接收方應答:'O'+'K' 01 09 xx
------- --- ---- ---
幀頭 長度 信息 校驗和