欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
串口通信與編程01:串口基礎知識

串口通信與編程01:串口基礎知識

  串口是串行接口(serial port)的簡(jiǎn)稱(chēng),也稱(chēng)為串行通信接口或COM接口。

  串口通信是指采用串行通信協(xié)議(serial communication)在一條信號線(xiàn)上將數據一個(gè)比特一個(gè)比特地逐位進(jìn)行傳輸的通信模式。

  串口按電氣標準及協(xié)議來(lái)劃分,包括RS-232-C、RS-422、RS485等。

 

1.串行通信

  在串行通信中,數據在1位寬的單條線(xiàn)路上進(jìn)行傳輸,一個(gè)字節的數據要分為8次,由低位到高位按順序一位一位的進(jìn)行傳送。

  串行通信的數據是逐位傳輸的,發(fā)送方發(fā)送的每一位都具有固定的時(shí)間間隔,這就要求接收方也要按照發(fā)送方同樣的時(shí)間間隔來(lái)接收每一位。不僅如此,接收方還必須能夠確定一個(gè)信息組的開(kāi)始和結束。

  常用的兩種基本串行通信方式包括同步通信和異步通信。

1.1串行同步通信

  同步通信(SYNC:synchronous data communication)是指在約定的通信速率下,發(fā)送端和接收端的時(shí)鐘信號頻率和相位始終保持一致(同步),這樣就保證了通信雙方在發(fā)送和接收數據時(shí)具有完全一致的定時(shí)關(guān)系。

  同步通信把許多字符組成一個(gè)信息組(信息幀),每幀的開(kāi)始用同步字符來(lái)指示,一次通信只傳送一幀信息。在傳輸數據的同時(shí)還需要傳輸時(shí)鐘信號,以便接收方可以用時(shí)針信號來(lái)確定每個(gè)信息位。

  同步通信的優(yōu)點(diǎn)是傳送信息的位數幾乎不受限制,一次通信傳輸的數據有幾十到幾千個(gè)字節,通信效率較高。同步通信的缺點(diǎn)是要求在通信中始終保持精確的同步時(shí)鐘,即發(fā)送時(shí)鐘和接收時(shí)鐘要嚴格的同步(常用的做法是兩個(gè)設備使用同一個(gè)時(shí)鐘源)。

  在后續的串口通信與編程中將只討論異步通信方式,所以在這里就不對同步通信做過(guò)多的贅述了。

1.2串行異步通信

  異步通信(ASYNC:asynchronous data communication),又稱(chēng)為起止式異步通信,是以字符為單位進(jìn)行傳輸的,字符之間沒(méi)有固定的時(shí)間間隔要求,而每個(gè)字符中的各位則以固定的時(shí)間傳送。

  在異步通信中,收發(fā)雙方取得同步是通過(guò)在字符格式中設置起始位和停止位的方法來(lái)實(shí)現的。具體來(lái)說(shuō)就是,在一個(gè)有效字符正式發(fā)送之前,發(fā)送器先發(fā)送一個(gè)起始位,然后發(fā)送有效字符位,在字符結束時(shí)再發(fā)送一個(gè)停止位,起始位至停止位構成一幀。停止位至下一個(gè)起始位之間是不定長(cháng)的空閑位,并且規定起始位為低電平(邏輯值為0),停止位和空閑位都是高電平(邏輯值為1),這樣就保證了起始位開(kāi)始處一定會(huì )有一個(gè)下跳沿,由此就可以標志一個(gè)字符傳輸的起始。而根據起始位和停止位也就很容易的實(shí)現了字符的界定和同步。

  顯然,采用異步通信時(shí),發(fā)送端和接收端可以由各自的時(shí)鐘來(lái)控制數據的發(fā)送和接收,這兩個(gè)時(shí)鐘源彼此獨立,可以互不同步。

  下面簡(jiǎn)單的說(shuō)說(shuō)異步通信的數據發(fā)送和接收過(guò)程。

1.2.1異步通信的數據格式

  在介紹異步通信的數據發(fā)送和接收過(guò)程之前,有必要先弄清楚異步通信的數據格式。

  異步通信規定傳輸的數據格式由起始位(start bit)、數據位(data bit)、奇偶校驗位(parity bit)和停止位(stop bit)組成,如圖1所示(該圖中未畫(huà)出奇偶校驗位,因為奇偶檢驗位不是必須有的,如果有奇偶檢驗位,則奇偶檢驗位應該在數據位之后,停止位之前)。

圖1 異步通信數據格式

 ?。?)起始位:起始位必須是持續一個(gè)比特時(shí)間的邏輯0電平,標志傳輸一個(gè)字符的開(kāi)始,接收方可用起始位使自己的接收時(shí)鐘與發(fā)送方的數據同步。

 ?。?)數據位:數據位緊跟在起始位之后,是通信中的真正有效信息。數據位的位數可以由通信雙方共同約定,一般可以是5位、7位或8位,標準的ASCII碼是0~127(7位),擴展的ASCII碼是0~255(8位)。傳輸數據時(shí)先傳送字符的低位,后傳送字符的高位。

 ?。?)奇偶校驗位:奇偶校驗位僅占一位,用于進(jìn)行奇校驗或偶校驗,奇偶檢驗位不是必須有的。如果是奇校驗,需要保證傳輸的數據總共有奇數個(gè)邏輯高位;如果是偶校驗,需要保證傳輸的數據總共有偶數個(gè)邏輯高位。

  舉例來(lái)說(shuō),假設傳輸的數據位為01001100,如果是奇校驗,則奇校驗位為0(要確??偣灿衅鏀祩€(gè)1),如果是偶校驗,則偶校驗位為1(要確??偣灿信紨祩€(gè)1)。

  由此可見(jiàn),奇偶校驗位僅是對數據進(jìn)行簡(jiǎn)單的置邏輯高位或邏輯低位,不會(huì )對數據進(jìn)行實(shí)質(zhì)的判斷,這樣做的好處是接收設備能夠知道一個(gè)位的狀態(tài),有可能判斷是否有噪聲干擾了通信以及傳輸的數據是否同步。

 ?。?)停止位:停止位可以是是1位、1.5位或2位,可以由軟件設定。它一定是邏輯1電平,標志著(zhù)傳輸一個(gè)字符的結束。

 ?。?)空閑位:空閑位是指從一個(gè)字符的停止位結束到下一個(gè)字符的起始位開(kāi)始,表示線(xiàn)路處于空閑狀態(tài),必須由高電平來(lái)填充。

1.2.2異步通信的數據發(fā)送過(guò)程

  清楚了異步通信的數據格式之后,就可以按照指定的數據格式發(fā)送數據了,發(fā)送數據的具體步驟如下:

 ?。?)初始化后或者沒(méi)有數據需要發(fā)送時(shí),發(fā)送端輸出邏輯1,可以有任意數量的空閑位。

 ?。?)當需要發(fā)送數據時(shí),發(fā)送端首先輸出邏輯0,作為起始位。

 ?。?)接著(zhù)就可以開(kāi)始輸出數據位了,發(fā)送端首先輸出數據的最低位D0,然后是D1,最后是數據的最高位。

 ?。?)如果設有奇偶檢驗位,發(fā)送端輸出檢驗位。

 ?。?)最后,發(fā)送端輸出停止位(邏輯1)。

 ?。?)如果沒(méi)有信息需要發(fā)送,發(fā)送端輸出邏輯1(空閑位),如果有信息需要發(fā)送,則轉入步驟(2)。

1.2.3異步通信的數據接收過(guò)程

  在異步通信中,接收端以接收時(shí)鐘和波特率因子決定每一位的時(shí)間長(cháng)度。下面以波特率因子等于16(接收時(shí)鐘每16個(gè)時(shí)鐘周期使接收移位寄存器移位一次)為例來(lái)說(shuō)明。

 ?。?)開(kāi)始通信,信號線(xiàn)為空閑(邏輯1),當檢測到由1到0的跳變時(shí),開(kāi)始對接收時(shí)鐘計數。

 ?。?)當計到8個(gè)時(shí)鐘的時(shí)候,對輸入信號進(jìn)行檢測,若仍然為低電平,則確認這是起始位,而不是干擾信號。

 ?。?)接收端檢測到起始位后,隔16個(gè)接收時(shí)鐘對輸入信號檢測一次,把對應的值作為D0位數據。

 ?。?)再隔16個(gè)接收時(shí)鐘,對輸入信號檢測一次,把對應的值作為D1位數據,直到全部數據位都輸入。

 ?。?)檢驗奇偶檢驗位。

 ?。?)接收到規定的數據位個(gè)數和校驗位之后,通信接口電路希望收到停止位(邏輯1),若此時(shí)未收到邏輯1,說(shuō)明出現了錯誤,在狀態(tài)寄存器中置“幀錯誤”標志;若沒(méi)有錯誤,對全部數據位進(jìn)行奇偶校驗,無(wú)校驗錯時(shí),把數據位從移位寄存器中取出送至數據輸入寄存器,若校驗錯,在狀態(tài)寄存器中置“奇偶錯”標志。

 ?。?)本幀信息全部接收完,把線(xiàn)路上出現的高電平作為空閑位。

 ?。?)當信號再次變?yōu)榈蜁r(shí),開(kāi)始進(jìn)入下一幀的檢測。

  以上就是異步通信中數據發(fā)送和接收的全過(guò)程了。

1.3幾個(gè)概念

  為了更好的理解串口通信,我們還需要了解幾個(gè)串口通信當中的基本概念。

 ?。?)發(fā)送時(shí)鐘:發(fā)送數據時(shí),首先將要發(fā)送的數據送入移位寄存器,然后在發(fā)送時(shí)鐘的控制下,將該并行數據逐位移位輸出。

 ?。?)接收時(shí)鐘:在接收串行數據時(shí),接收時(shí)鐘的上升沿對接收數據采樣,進(jìn)行數據位檢測,并將其移入接收器的移位寄存器中,最后組成并行數據輸出。

 ?。?)波特率因子:波特率因子是指發(fā)送或接收1個(gè)數據位所需要的時(shí)鐘脈沖個(gè)數。

 

2.串口接頭

  常用的串口接頭有兩種,一種是9針串口(簡(jiǎn)稱(chēng)DB-9),一種是25針串口(簡(jiǎn)稱(chēng)DB-25)。每種接頭都有公頭和母頭之分,其中帶針狀的接頭是公頭,而帶孔狀的接頭是母頭。9針串口的外觀(guān)如圖2所示。

圖2 DB-9外觀(guān)圖

  由圖2可以看出,在9針串口接頭中,公頭和母頭的管腳定義順序是不一樣,這一點(diǎn)需要特別注意。那么,這些管腳都有什么作用呢?9針串口和25針串口常用管腳的功能說(shuō)明如圖3所示。

圖3 9針串口和25針串口常用管腳功能說(shuō)明

3.RS-232C標準

  常用的串行通信接口標準有RS-232C、RS-422、RS-423和RS-485。其中,RS-232C作為串行通信接口的電氣標準定義了數據終端設備(DTE:data terminal equipment)和數據通信設備(DCE:data communication equipment)間按位串行傳輸的接口信息,合理安排了接口的電氣信號和機械要求,在世界范圍內得到了廣泛的應用。

3.1電氣特性

  RS-232C對電器特性、邏輯電平和各種信號功能都做了規定,如下:

  在TXD和RXD數據線(xiàn)上:

 ?。?)邏輯1為-3~-15V的電壓

 ?。?)邏輯0為3~15V的電壓

  在RTS、CTS、DSR、DTR和DCD等控制線(xiàn)上:

 ?。?)信號有效(ON狀態(tài))為3~15V的電壓

 ?。?)信號無(wú)效(OFF狀態(tài))為-3~-15V的電壓

  由此可見(jiàn),RS-232C是用正負電壓來(lái)表示邏輯狀態(tài),與晶體管-晶體管邏輯集成電路(TTL)以高低電平表示邏輯狀態(tài)的規定正好相反。

3.2信號線(xiàn)分配

  RS-232C標準接口有25條線(xiàn),其中,4條數據線(xiàn)、11條控制線(xiàn)、3條定時(shí)線(xiàn)以及7條備用和未定義線(xiàn)。那么,這些信號線(xiàn)在9針串口和25針串口的管腳上是如何分配的呢?9針串口和25針串口信號線(xiàn)分配如圖4所示。

圖4 9針串口和25針串口信號線(xiàn)分配示意圖

  下面對這些信號線(xiàn)做個(gè)簡(jiǎn)單的介紹。

 ?。?)數據裝置準備好(DSR),有效狀態(tài)(ON)表示數據通信設備處于可以使用狀態(tài)。

 ?。?)數據終端準備好(DTR),有效狀態(tài)(ON)表示數據終端設備處于可以使用狀態(tài)。

  這兩個(gè)設備狀態(tài)信號有效,只表示設備本身可用,并不說(shuō)明通信鏈路可以開(kāi)始進(jìn)行通信了,能否開(kāi)始進(jìn)行通信要由下面的一些控制信號決定。

 ?。?)請求發(fā)送(RTS),用來(lái)表示數據終端設備(DTE)請求數據通信設備(DCE)發(fā)送數據。

 ?。?)允許發(fā)送(CTS),用來(lái)表示數據通信設備(DCE)已經(jīng)準備好了數據,可以向數據終端設備(DTE)發(fā)送數據,是對請求發(fā)送信號RTS的響應。

  請求發(fā)送(RTS)和允許發(fā)送(CTS)用于半雙工的通信系統中,在全雙工的系統中,不需要使用請求發(fā)送(RTS)和允許發(fā)送(CTS)信號,直接將其置為ON即可。

 ?。?)數據載波檢出(DCD),用于表示數據通信設備(DCE)已接通通信鏈路,告知數據終端設備(DTE)準備接收數據。

 ?。?)振鈴指示(RI),當數據通信設備收到交換臺送來(lái)的振鈴呼叫信號時(shí),使該信號有效(ON),通知終端,已被呼叫。

 ?。?)發(fā)送數據(TXD),數據終端設備(DTE)通過(guò)該信號線(xiàn)將串行數據發(fā)送到數據通信設備(DCE)。

 ?。?)接收信號(RXD),數據終端設備(DTE)通過(guò)該信號線(xiàn)接收從數據通信設備(DCE)發(fā)來(lái)的串行數據。

 ?。?)地線(xiàn)(SG、PG),分別表示信號地和保護地信號線(xiàn)。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
單片機:串口通信知識詳解(上)
UART串行通信詳解
通信教程01_什么是并行通信?什么是串行通信?
關(guān)于串口,你需要知道這些!!
單片機_第7章 單片機的串行口及應用_單片機串行口
串行通信(UART)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久