㈠ 串口通信協議有哪些
一、UART
UART是一個大家族,其包括了RS232、RS499、RS423、RS422和RS485等介面標准規范和匯流排標准規范。它們的主要區別在於其各自的電平范圍不相同。
嵌入式設備中常常使用到的是TTL、TTL轉RS232的這種方式。常用的就三根引線:發送線TX、接收線RX、電平參考地線GND。
1.1 電路示意圖
1.2 通信協議
將傳輸數據的每個字元一位接一位地傳輸。
https://img-blog.csdn.net/20170719232822650」 alt=」串口數據傳輸示意圖.png」 title=」」 />
起始位:先發出一個邏輯」0」的信號,表示傳輸字元的開始。
數據位:緊接著起始位之後。數據位的個數可以是4、5、6、7、8等,構成一個字元。通常採用ASCII碼。
奇偶校驗位:數據位加上這一位後,使得「1」的位數應為偶數(偶校驗)或奇數(奇校驗),以此來校驗資料傳送的正確性。
停止位:它是一個字元數據的結束標志。可以是1位、1.5位、2位的高電平。
空閑位:處於邏輯「1」狀態,表示當前線路上沒有資料傳送。
波特率:數據傳輸的速率。有以下幾個檔位:300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200.當然也可以自定義。在數據傳輸和接收雙方,需要預先統一波特率,以便正確的傳輸數據。
二、I2C 匯流排
2.1 電路示意圖
I²C (Inter-Integrated Circuit)。其擁有一根數據線SDA和一根時鍾線SCL。其匯流排通過上拉電阻與電源相連接。每個接到I2C匯流排上的器件都有唯一的地址。其中,主動發起操作的一方為主機,另外一方為從機。
2.2 數據傳輸
當沒有數據傳輸的時候,兩根匯流排都為高電
㈡ 串口通信用的是什麼協議
就是RS-232的串口通信協議。一個TX端,一個RX端,分別用於發送和接收數據。
具體如下:
串列通信協議分同步協議和非同步協議。
(1)非同步通信協議的實例——起止式非同步協議
圖3
特點與格式:
起止式非同步協議的特點是一個字元一個字元傳輸,並且傳送一個字元總是以起始位開始,以停止位結束,字元之間沒有固定的時間間隔要求。其格式如圖3所示。每一個字元的前面都有一位起始位(低電平,邏輯值0),字元本身有5~7位數據位組成,接著字元後面是一位校驗位(也可以沒有校驗位),最後是一位,或意味半,或二位停止位,停止位後面是不定長度的空閑位。停止位和空閑位都規定為高電平(邏輯值),這樣就保證起始位開始處一定有一個下跳沿。
從圖中可以看出,這種格式是靠起始位和停止位來實現字元的界定或同步的,故稱為起始式協議。傳送時,數據的低位在前,高位在後,圖4表示了傳送一個字元E的ASCAII碼的波形1010001。當把它的最低有效位寫到右邊時,就是E的ASCII碼1000101=45H。
圖4
起/止位的作用:起始位實際上是作為聯絡信號附加進來的,當它變為低電平時,告訴收方傳送開始。它的到來,表示下面接著是數據位來了,要准備接收。而停止位標志一個字元的結束,它的出現,表示一個字元傳送完畢。這樣就為通信雙方提供了何時開始收發,何時結束的標志。傳送開始前,發收雙方把所採用的起止式格式(包括字元的數據位長度,停止位位數,有無校驗位以及是奇校驗還是偶校驗等)和數據傳輸速率作統一規定。傳送開始後,接收設備不斷地檢測傳輸線,看是否有起始位到來。當收到一系列的「1」(停止位或空閑位)之後,檢測到一個下跳沿,說明起始位出現,起始位經確認後,就開始接收所規定的數據位和奇偶校驗位以及停止位。經過處理將停止位去掉,把數據位拼裝成一個並行位元組,並且經校驗後,無奇偶錯才算正確的接收一個字元。一個字元接收完畢,接收設備有繼續測試傳輸線,監視「0」電平的到來和下一個字元的開始,直到全部數據傳送完畢。
由上述工作過程可看到,非同步通信是按字元傳輸的,每傳輸一個字元,就用起始位來通知收方,以此來重新核對收發雙方同步。若接收設備和發送設備兩者的時鍾頻率略有偏差,這也不會因偏差的累積而導致錯位,加之字元之間的空閑位也為這種偏差提供一種緩沖,所以非同步串列通信的可靠性高。但由於要在每個字元的前後加上起始位和停止位這樣一些附加位,使得傳輸效率變低了,只有約80%。因此,起止協議一般用在數據速率較慢的場合(小於19.2kbit/s)。在高速傳送時,一般要採用同步協議。
(2)面向字元的同步協議
特點與格式:這種協議的典型代表是IBM公司的二進制同步通信協議(BSC)。它的特點是一次傳送由若干個字元組成的數據塊,而不是只傳送一個字元,並規定了10個字元作為這個數據塊的開頭與結束標志以及整個傳輸過程的控制信息,它們也叫做通信控制字。由於被傳送的數據塊是由字元組成,故被稱作面向字元的協議。
特定字元(控制字元)的定義:由上面的格式可以看出,數據塊的前後都加了幾個特定字元。SYN是同步字元(synchronous Character),每一幀開始處都有SYN,加一個SYN的稱單同步,加兩個SYN的稱雙同步設置同步字元是起聯絡作用,傳送數據時,接收端不斷檢測,一旦出現同步字元,就知道是一幀開始了。接著的SOH是序始字元(Start Of Header),它表示標題的開始。標題中包括院地址、目的地址和路由指示等信息。STX是文始字元(Start Of Text),它標志著傳送的正文(數據塊)開始。數據塊就是被傳送的正文內容,由多個字元組成。數據塊後面是組終字元ETB(End Of Transmission Block)或文終字元ETX(End Of Text),其中ETB用在正文很長、需要分成若干個分數據塊、分別在不同幀中發送的場合,這時在每個分數據塊後面用文終字元ETX。一幀的最後是校驗碼,它對從SOH開始到ETX(或ETB)欄位進行校驗,校驗方式可以是縱橫奇偶校驗或CRC。另外,在面向字元協議中還採用了一些其他通信控制字,它們的名稱如下表所示:
數據透明的實現:面向字元的同步協議,不象非同步起止協議那樣,需要在每個字元前後附加起始和停止位,因此,傳輸效率提高了。同時,由於採用了一些傳輸控制字,故增強了通信控制能力和校驗功能。但也存在一些問題,例如,如何區別數據字元代碼和特定字元代碼的問題,因為在數據塊中完全有可能出現與特定字元代碼相同的數據字元,這就會發生誤解。比如正文有個與文終字元ETX的代碼相同的數據字元,接收端就不會把它當作為普通數據處理,而誤認為是正文結束,因而產生差錯。因此,協議應具有將特定字元作為普通數據處理的能力,這種能力叫做「數據透明」。為此,協議中設置了轉移字元DLE(Data Link Escape)。當把一個特定字元看成數據時,在它前面要加一個DLE,這樣接收器收到一個DLE就可預知下一個字元是數據字元,而不會把它當作控制字元來處理了。DLE本身也是特定字元,當它出現在數據塊中時,也要在它前面加上另一個DLE。這種方法叫字元填充。字元填充實現起來相當麻煩,且依賴於字元的編碼。正是由於以上的缺點,故又產生了新的面向比特的同步協議。
(3)面向比特的同步協議
特點與格式:面向比特的協議中最具有代表性的是IBM的同步數據鏈路控制規程SDLC(Synchronous Data Link Control),國際標准化組織ISO(International Standard Organization)的高級數據鏈路控制規程HDLC(High Level Data link Control),美國國家標准協會(Americal National Standard Institute)的先進數據通信規程ADCCP(Advanced Data Communication Control Procere)。這些協議的特點是所傳輸的一幀數據可以是任意位,而且它是靠約定的位組合模式,而不是靠特定字元來標志幀的開始和結束,故稱「面向比特」的協議。這中協議的一般幀格式如圖5所示:
圖5
幀信息的分段:由圖5可見,SDLC/HDLC的一幀信息包括以下幾個場(Filed),所有場都是從有效位開始傳送。
(1)SDLC/HDLC標志字元:SDLC/HDLC協議規定,所有信息傳輸必須以一個標志字元開始,且以同一個字元結束。這個標志字元是 01111110,稱標志場(F)。從開始標志到結束標志之間構成一個完整的信息單位,稱為一幀(Frame)。所有的信息是以幀的形傳輸的,而標志字元提供了每一幀的邊界。接收端可以通過搜索「01111110」來探知幀的開頭和結束,以此建立幀同步。
(2)地址場和控制場:在標志場之後,可以有一個地址場A(Address)和一個控制場C(Control)。地址場用來規定與之通信的次站的地址。控制場可規定若干個命令。SDLC規定A場和C場的寬度為8位或16位。接收方必須檢查每個地址位元組的第一位,如果為「0」,則後面跟著另一個地址位元組;若為「1」,則該位元組就是最後一個地址位元組。同理,如果控制場第一個位元組的第一位為為「0」,則還有第二個控制場位元組,否則就只有一個位元組。
(3)信息場:跟在控制場之後的是信息場I(Information)。I場包含有要傳送的數據,並不是每一幀都必須有信息場。即數據場可以為0,當它為0時,則這一幀主要是控制命令。
(4)幀校驗信息:緊跟在信息場之後的是兩位元組的爭校驗,幀校驗場稱為FC(Frame Check)場或稱為幀校驗序列FCS(Frame check Squence)。SDLC/HDLC均採用16位循環冗餘校驗碼CRC(Cyclic Rendancy Code)。除了標志場和自動插入的「0」以外,所有的信息都參加CRC計算。
實際應用時的兩個技術問題:
(1)「0」位插入/刪除:如上所述,SDLC/HDLC協議規定以01111110為標志位元組,但在信息場中也完全有可能有同一種模式的字元,為了把它與標志區分開來,所以採取了「0」位插入和刪除技術。具體作法是發送端在發送所有信息(除標志位元組外)時,只要遇到連續5個「1」,就自動插入一個「0」,當接收端在接收數據時(除標志位元組)如果連續收到5個「1」,就自動將其後的一個「0」刪除是,以恢復信息的原有形式。這種「0」位的插入和刪除過程是由硬體自動完成的。
(2)SDLC/HDLC異常結束:若在發送過程中出現錯誤,則SDLC/HDLC協議常用異常結束(Abort)字元,或稱為失效序列使本幀作廢。在HDLC規程中,7個連續的「1」被作為失效字元,而在SDLC中失效字元是8個連續的「1」。當然在試銷序列中不使用「0」位插入/刪除技術。SDLC/HDLC協議規定,在一幀之內不允許出現數據間隔。在兩幀之間,發送器可以連續輸出標志字元序列,也可以輸出連續的高電平,它被稱為空閑(Idle)信號。
㈢ 串口用的什麼協議
您好,串口是計算機上一種非常通用設備通信的協議(不要與通用串列匯流排UniversalSerialBus或者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個邏輯高位。高位和低位不真正的檢查數據,簡單置位邏輯高或者邏輯低校驗。這樣使得接收設備能夠知道一個位的狀態,有機會判斷是否有雜訊干擾了通信或者是否傳輸和接收數據是否不同步。㈣ 串口通訊協議是什麼
串口通信就是,用一根線完成數據的傳送,具體就是將數據一ASSII碼的形式表現出來,並在一根線上一位一位的傳送出去,傳送協議就是傳送中的規則,比如上升沿接受,下降沿發送之類的規定。
㈤ 串口通信協議有哪些
串口通信指串口按位(bit)發送和接收位元組。盡管比特位元組(byte)的串列通信慢,但是串口可以在使用一根線發送數據的同時用另一根線接收數據。串口通信協議是指規定了數據包的內容,內容包含了起始位、主體數據、校驗位及停止位,雙方需要約定一致的數據包格式才能正常收發數據的有關規范。在串口通信中,常用的協議包括RS-232、RS-422和RS-485。
中文名
串口通信協議
外文名
Serial communication protocol
作用
發送和接收位元組
學科
計算機學
作用
用於獲取遠程採集設備的
串口通信的基本原理
串口在嵌入式系統當中是一類重要的數據通信介面,其本質功能是作為 CPU 和串列設備間的編碼轉換器。當數據從 CPU 經過串列埠發送出去時,位元組數據轉換為串列的位;在接收數據時,串列的位被轉換為位元組數據。應用程序要使用串口進行通信,必須在使用之前向操作系統提出資源申請要求(打開串口),通信完成後必須釋放資源(關閉串口)。典型地,串口用於 ASCII 碼字元的傳輸。通信使用3根線完成:(1)地線,(2)發送數據線,(3)接收數據線。串口通信最重要的參數是波特率、數據位、停止位和奇偶校驗。對於兩個進行通行的埠,這些參數必須匹配:波特率是一個衡量通信速度的參數,它表示每秒鍾傳送的 bit 的個數;數據位是衡量通信中實際數據位的參數,當計算機發送一個信息包,標準的值是 5,7 和 8 位。如何設置取決於你的需求;停止位用於表示單個包的最後一位,典型的值為 1,1.5和 2 位,停止位不僅僅是表示傳輸的結束,並且提供計算機校正時鍾同步的機會;奇偶校驗位是串口通信中一種簡單的檢錯方式,有四種檢錯方式——偶、奇、高和低,也可以沒有校驗位。[1]
有關規定
波特率
串口非同步通訊中由於沒有時鍾信號,所以通訊雙方需要約定好波特率,即每個碼元的長度,以便對信號進行解碼。常見的波特率有4800、9600、115200等。
起始位、停止位
數據包從起始位開始,到停止位結束。起始信號用邏輯0的數據位表示,停止信號由0.5、1、1.5或2個邏輯1的數據位表示,只要雙方約定一致即可。
有效數據
起始位之後便是傳輸的主體數據內容了,也稱為有效數據,其長度一般被約定為5、6、7或8位長。
㈥ 關於串口格式與報文格式
《串口硬體分類》 中已經說明了幾種串口的類型,並在 《串口通信協議》 中說明了幾種串口協議形式,這里就常用的串口協議進一步做一個說明。
工業上我們最常見的MODBUS RTU/ASCII通信協議是一種典型的起止型非同步協議。之前在 《串口通信協議》 中已經解釋過,起止型非同步協議的特點是一個字元一個字元傳輸,並且傳送一個字元總是以起始位開始,以停止位結束,字元之間沒有固定的時間間隔要求。
這里需要強調的就是對於起止型通信協議,每一個字元的前面都有一位起始位(低電平,邏輯值0),字元本身有5~7位數據位組成,接著字元後面是一位校驗位(也可以沒有校驗位),最後是一位,或一位半,或二位停止位,停止位後面是不定長度的空閑位。停止位和空閑位都規定為高電平(邏輯值),這樣就保證起始位開始處一定有一個下跳沿。
這段話可能講的有點理論了,對於我們工作中所常見的一個情況就是選擇一個串口的校驗位、數據位與停止位(這里沒有起始位,因為起始位一般是默認的)。
對應到一個如上圖的具體通信格式上,就是8個數據位,無校驗位➕一位停止位。也就是我們說的8N1通信格式。當然,這里也會用到奇偶校驗的變化,如西門子V90在使用串口通信控制時便要求為8O1(8位數據,偶校驗,1位停止)。
不考慮串口的傳輸線數量,單以一根線來理解,即每傳輸(掃描)一個位,信號線上便給出一個(高或低)電平,即0或1。對於一個8N1格式的傳輸,每一次傳輸周期電平將掃描 1起始位+8數據位+1停止位 共10次電平變化,而掃描的頻率就是串口的波特率。因此,雖然理論上說起止型協議依託於起止信號來判斷數據的開始和結束,數據間沒有固定的時間間隔要求,但在實際應用的過程中,對於一個既定的串口協議,通信站之間還是要保持相同的收發波特率的,否則掃描口將會對同樣的電平變化做出可能完全不同的解讀而導致通信失敗。
綜上,串口數據格式存在的意義是限定了串口傳輸數據的時間間隔、每次傳輸的數據量以及傳輸的起始和結束。它解決了「怎麼傳」的問題。
而串口通信報文,則是定義「傳什麼」的問題。
一個典型的modbus報文格式如下:
設備地址(8位)➕功能碼(8位)➕起始操作地址(16位)➕操作數量(16位)➕CRC(16位)
我在工作中遇到一個比較多的就是關於數據格式與報文的概念混淆。如上述的一串格式報文,曾經被誤解為與8N1的數據格式相矛盾,因為很明顯,它完全就超出了我們所說的8位數據或10位數據的格式,那麼怎麼來解釋這個問題呢?
澄清一個概念,數據格式中的8位,指的是8bit而不是8byte,對於上述modbus,當採取8N1格式通信時,串口將會以1byte(8位)為單位對報文進行包裝並傳輸。比如最開始,串口晶元或發射端會將8位設備地址提出,然後對這個位元組進行包裝(加1位起始碼,加1位停止碼),形成一個10位的數據包,並將數據發送出去,然後繼續提取功能碼,進行同樣的包裝發送,以此類推,直至所有數據發送完畢。
因此,報文指的是數據字元,而數據格式,只是表明如何來包裝這個數據字元。而我們通過各種軟體所看到的,是經過計算機串口處理的數據,因而無法看到起始碼停止碼一類的信號,而僅有我們所需要的數據。
由此還可以推導出串口通信的效率。依舊以8N1格式來說,每個數據包的長度為10位,若選擇波特率為9600,即每秒傳輸9600個位信號,那麼8N1數據格式每傳輸1個數據包所需要的時間10/9600約為1ms,對於一串MODBUS典型報文,需要8個位元組(根據指令決定),故信號發出時間為8ms。modbus規定從站必須在指定時間內反饋相應的數據方可認為通信成功,因而需要再加回報時間,如只操作一個位元組,那麼往返數據時間應該在20ms左右,根據操作的數據量通信時間會相應的加長。
因此,還可以了解到的是在多站輪詢時需要根據數據量進行一次核算,若對實時性要求較高,則要考慮進行主站的獨立處理。
經驗之談,歡迎指正。
㈦ Serial SSH Rlogin Telnet Raw分別是什麼協議
Serial是串口通信協議,規定了數據包的內容,內容包含了起始位、主體數據、校驗位及停止位,雙方需要約定一致的數據包格式才能正常收發數據的有關規范。
SSH是較可靠,專為遠程登錄會話和其他網路服務提供安全性的文件傳輸協議。建立在應用層和傳輸層基礎上。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。
Rlogin是unix系統中的遠程登錄協議。由於客戶端進程和伺服器進程已經事先知道了對方的操作系統類型,因此也就省去了選項協商機制。
Telnet是Internet遠程登錄服務的標准協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。
Raw是列印設備的默認列印協議。為了發送 RAW 格式的作業,列印server將打開一個針對列印機網路介面的 TCP 流。
(7)串口數據協議是什麼文件格式擴展閱讀:
Telnet與Rlogin協議在傳輸機制上是有安全漏洞的,因為它們在傳輸數據時使用明文機制;如果有人在網路上進行截獲這樣的數據,那麼一些重要的數據將會不可避免的泄露。
而SSH協議可以替代以Telnet,Rlogin等傳統網路程序協議,在不安全的通信環境中提供了比較可靠的數據保護機制。SSH協議採用了數據加密機制,能夠防止DNS欺騙和IP欺騙。通過SSH協議所傳輸的數據是經過壓縮的,因此相對來說加快了傳輸速度。
㈧ 51串口發送數據的格式是什麼
串列口控制寄存器SCON
SCON的位元組地址是98H,其格式如下:
SM0、SM1:串列口工作方式控制位:
SM0、SM1 工作方式 功能 波特率
00 方式0 同步移位寄存器 fosc/12
01 方式1 8位UART 可變(T1溢出率)
10 方式2 9位UART fosc/64或fosc/32
11 方式3 9位UART 可變(T1溢出率)
其中,fosc為振盪器的頻率,UART為通用非同步接收和發送器的英文縮寫。
串列口工作方式0:
當設定SM0、SM1為00時,串列口工作於方式0,它又叫同步移位寄存器輸出方式。在方式0下,數據從RXD(P3.0)端串列輸出或輸入,同步信號從TXD(P3.1)端輸出,發送或接收的數據為8位,低位在前,高位在後,沒有起始位和停止位。數據傳輸率固定為振盪器的頻率1/12,也就是每個機器周期傳送一位數據。方式0可以外接移位寄存器,將串列口擴展為並行口,也可以外接同步輸入/輸出設備。
執行任何一條以SBUF為目的寄存器指令,就開始發送。
串列口工作方式1:
當設定SM0、SM1為01時,串列口工作於方式1,為數據傳輸率可變的8位非同步通信方式,由TXD發送,RXD接收,一幀數據為10位,1位起始位(低電平),8位數據位(低位在前),1位停止位(高電平)。數據傳輸率取決於定時器1或2的溢出速率(1/溢出周期)和數據傳輸率是否加倍的選擇位SMOD。
對於有定時器/計數器2的單片機,當T2CON寄存器中RCLK和TCLK置位時,用定時器2作為接收和發送數據傳輸率發生器,而RCLK=TCLK=0時,用定時器1作為接收和發送的數據傳輸率發生器。2個定時器/計數器可以交叉使用,即發送和接收採用不同的數據傳輸率。
發送過程是由執行任何一條以SBUF為目的的寄存器指令引起的。
串列口工作方式2:
當設定SM0、SM12位為10時,串列口工作於方式2,此時串列口被定義為9位非同步通信介面。採用這種方式可接收或發送11位數據,以11位為一幀,比方式1增加了一個數據位,其餘相同。第9個數據即D8位可用作奇偶校驗或地址/數據選擇,可以通過軟體來控制它,再加特殊功能寄存器SCON中的SM2位的配合,可使MCS-51單片機串列口適用於多機通信。發送時,第9位數據為TB8,接收時,第9位數據送入RB8。方式2數據傳輸率固定,只有2個選擇,為振盪器的1/64或1/32,可由PCON的最高位選擇。
串列口工作方式3:
當設定SM0、SM1二位為11時,串列口工作於方式3。方式3與方式2類似,唯一的區別是方式3的數據傳輸率是可變的,而幀格式與方式2一樣為11位一幀。方式3也適用於多機通信。
SM2:多機通信控制位多機通信時工作於方式2和方式3,SM2位主要用於方式2和方式3。接收狀態,當串列口工作於方式2或方式3,以及SM2=1時,只有當接收到第9位數據(RB8)為1時,才把接收到的前8位數據送入SBUF,且置位RI發出中斷請求,否則會將接收到的數據放棄。當SM2=0時,就不管第9位數據是0還是1,都將數據送入SBUF,並發出中斷請求。
工作於方式0,SM2必須為0。
REN:允許接收位
REN用於控制數據接收的允許和禁止,REN=1允許接收,REN=0禁止接收。
TB8:發送數據位8
在方式2和方式3中,TB8是要發送的第9位數據位,在多機通信中同樣需要傳輸這一位,TB8=0表示傳輸的為數據,TB8=1代表傳輸的為地址。
RB8:接收數據位8
在方式2和方式3中,RB8存放接收到的第9位數據,用以識別接收到的數據特徵。
TI:發送中斷標志位
可定址標志位。方式0時,發送完第8位數據後,由硬體置位,其他方式下,在發送或停止位之前由硬體置位,TI=1表示幀發送結束, 向CPU發中斷申請。在中斷服務程序中,必須用軟體將其清0,取消此中斷申請。
RI:接收中斷標志位
可定址標志位。方式0時,接收完第8位數據後,該位由硬體置位,在其他工作方式下,該位由硬體置位,RI=1表示幀接收完成,向CPU發中斷申請。在中斷服務程序中,必須用軟體將其清0,取消此中斷申請。
㈨ 串口協議是什麼
問題一:串口通訊協議是什麼 串口通訊協議是指通信雙方的一種約定。約定包括對數據格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字元定義等問題做出統一規定,通信雙方必須共同遵守。因此,也叫做通信控制規程,或稱傳輸控制規程,它屬於ISO'S OSI七層參考模型中的數據鏈路層。
問題二:串口有哪些?串口協議有哪些? u *** ,rs485,422,232是串口介面,
串口協議 常見 modbus RTU ASCII
問題三:怎麼寫串口通信協議 通信協議是可以自己定義的,只不過要求不一樣,可以自己隨意定義,也可以根據客戶要求定義,或根據相關設備定義(如你所述你的主機通過掃描槍掃描二維碼,那主機內部就應該有相關編碼協議),看相關說明書能查到。同時自己也可以在裡面加上校驗碼等等
問題四:串口模擬協議是什麼? 串口模擬協議(RFM)是藍牙系統中用於模擬串口的主要協議層
問題五:串口協議 5分 協議一般要包含:起始符、、數據、校驗碼、結束符,5個部分的定義。
其中 起始符、結束符,不能與其他數據重碼。
如只要傳輸字母與數字,可以看下ASCII碼表,使用非數字和字母的符號做起始結束符即可,如{};
數據長度碼即表示此串數據包的數據長度,如果傳輸的數據串長度固定可省去;
校驗碼相當於對此串數據正確性的校驗,和奇偶校驗效果類似,一般是和校驗,即將數據全部累加得到一個和值當校驗碼,接收方收到數據也做一樣的運算與收到的檢驗碼比較,相等就說明正確接收。
如要發{1234567890 }
換成16進制即:7B 10 31 32 33 34 35 36 37 38 39 30 25 7D;31~30是數據,
7B,7D分別為起始和結束符,10為數據長度的BCD碼,25是校驗碼,是31~30的和模100後的BCD碼,轉成BCD碼是為了避免與 起始和結束符重碼。
問題六:RS232通訊協議是什麼? 參考:wenku./...6vE3vW
wenku./...9ltkL_
串口、RS232、口
2007年09月07日 星期五 11:03
什麼是串口?
------------------------------------------
串口是計算機上一種非常通用設備通信的協議(不要與通用串列匯流排Universal Serial Bus或者USB混淆)。大多數計算機包含兩個基於RS232的串口。串口同時也是儀器儀表設備通用的通信協議;很多GPIB兼容的設備也帶有RS232口。同時,串口通信協議也可以用於獲取遠程採集設備的數據。
串口通信的概念非常簡單,串口按位(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位數據。每個包是指一個位元組,包括開始/停止位,數據位和奇偶校驗位。由於實際數據位取決於通信協議的選取,術語 「包」指任何通信的情況。
......>>
問題七:電腦的串口,也就是口或RS232口,請問它採用的通信協議是什麼? RS232隻是一個物理介面 沒有規定你所說的協議,只規定了這個介面不同信號的電平范圍。具體和其他設備怎麼通信,這個協議就要你自己定了,只要設備的硬體能夠滿足串口電平協議就可以通信,至於執行什麼就是你自己來定義了。就像u *** 口一樣,規定了數據交換的協議,至於插在這個口上的設備怎麼運行,完全有設備和電腦的驅動等協調。
問題八:串口通訊時的數據幀格式和通訊協議有什麼區別 串口參數指的是串口通信所需要設置的相應參數,就像手機入網,你用的是電信的號碼還是移動的號碼,用的是3G網路還是2G網路,雖然是手機自動設置的,但是還是要設置滴
通信協議就是你說的什麼語言,你和別人溝通,大家都說普通話,一個說英文,一個說法語肯定不行啦。
485-can-tcp/...nt
問題九:串口是什麼 1,什麼是串口?
串口是計算機上一種非常通用設備通信的協議(不要與通用串列匯流排Universal Serial Bus或者USB混淆)。大多數計算機包含兩個基於RS232的串口。串口同時也是儀器儀表設備通用的通信協議;很多GPIB兼容的設備也帶有RS-232口。同時,串口通信協議也可以用於獲取遠程採集設備的數據。
串口通信的概念非常簡單,串口按位(bit)發送和接收位元組。
問題十:數字信號和串口信號有什麼區別?什麼是信號的協議? 20分 數字信號,和模擬信號,有區別。
串口信號,和並口信號,有區別。
數字信號,和串口信號,能有什麼區別呢?
㈩ 串口通訊時的數據幀格式和通訊協議有什麼區別
串口通訊時的數據幀格式和通訊協議區別為:作用層不同、用途不同、內容不同。
一、作用層不同
1、數據幀格式:數據幀格式的作用層為數據鏈路層。
2、通訊協議:通訊協議的作用層為應用層。
二、用途不同
1、數據幀格式:數據幀格式規定了傳遞數據的幀的格式。
2、通訊協議:通訊協議為連接不同操作系統和不同硬體體系結構的互聯網路提供通信支持,定義了在互聯網路中如何傳遞、管理信息(文件傳送、收發電子郵件、遠程登錄等),並制定了在出錯時必須遵循的規則。
三、內容不同
1、數據幀格式:數據幀格式包括幀頭,數據部分,幀尾三部分,幀頭和幀尾包含一些必要的控制信息,比如同步信息、地址信息、差錯控制信息等;數據部分則包含網路層傳下來的數據,比如IP數據包,等等。
2、通訊協議:通訊協議包括對數據格式,同步方式,傳送速度,傳送步驟,檢糾錯方式以及控制字元定義等問題的統一規定。