1. 單片機的串列介面是什麼
51 單片機內部有一個全雙工串列介面。什麼叫全雙工串口呢?一般來說,只能接受或只能發送的稱為單工串列;既可接收又可發送,但不能同時進行的稱為半雙陵清工;能同時接收和發送的串列口稱為全雙工串列口。串列通信是指數據一位一位地按順序傳送的通信方式,其突出優點是只需一根傳輸線,可大大降低硬體成本,適合遠距離通信。其缺點是傳輸速度較低。
串口可以有底下四種工作方式
1、方式0
串列介面的工作方式0為移位寄存器I/O方式。在串列口外接移位寄存器以擴展I/O介面,也可以外接串列同步I/O的設備。
(1)方式0輸出
串列口以方式0發送時,數據以RXD端串列輸出,TXD端輸出同步信號。當一個數據寫入串列口發送緩沖器以後,就啟動串列口發送器以振盪頻率的十二分之一的波特率,將數據從RXD端串列輸出。
(2)方式0輸入
當串列口定義為方式0並置位REN後,便啟動串列口以方式0接收數據,此時RXD端為數據輸入端,TXD端為同步脈沖信號輸出端。接收器以振盪率的十二分之一的波特率接收RXD端輸入的數據信息。但接收器接收到8位數據時,置1中斷標志RI。
2、方式1
串列介面定義為工作方式1時,則被控制為8位的非同步通訊介面,傳送一幀信息為10位,其中1位為起始位,8位數據位(先低位後高位),1位停止位。
(1)方式1輸出
串列介面以方式1發送時,數據由TXD端輸出。CPU執行一條數據寫入發送緩沖
器SBUF的指令(例如,MOVSBUF,A),數據位元組寫入SBUF後,便啟動串列口發送器發送,發送完一幀信息,置1放送中斷標志TI。
(2)方式1輸入
串列口以方式1接收時,數據從RXD端輸入。在REN置1以後,就允許接收器接收。接收器以所建立的波特率的16倍分頻計數器,以便實現時間同步。計數器的16個狀態把一位的時間等分成16份,在每位時間的第7、8和9個計數狀態,位檢測器采樣RXD的值,接收的值是3次采樣中取至少二次相同的值,以排除雜訊的干擾。如尺歷前果在起始接收的值不是0,則起始位無效,復位接收電路。在檢測到另一個1到0的跳變時,再重新啟動接收器。如果接收到值為0,起始位有效,則開始接收本幀的其餘信息。當RI=0並且接收到的停止位為1(或SM2=0)時,停止位進入RB8,接收到的8位數據進入接收緩沖器SBUF,置位RI中斷標志。接著接收便搜索另一幀信息的起始位。
3、方式2和方式3
串列介面工作方式2和方式3時,則被定義為9位的非同步通信介面。傳送一幀信息為11位,其中1位起始位,8位數據位(從低位至高位),1位是附加的可程式控制為1或0的第9位數據,1位停止位。
方式2和方式3的差別僅僅在於波特率不一樣,方式2的波特率是固定的,波特率為2SMOD/64(振盪頻率);方式3的波特率是可變的,波特率=2SMOD/32(T1的溢出率)。
方式2和方式3在發送和接收時唯一的區別就是波特率不同爛仔。
(1)方式2和方式3發送
方式2或方式3發送時,數據由TXD端輸出,發出一幀信息為11位,附加的第9位數據是SCON中的TB8,CPU執行一條數據寫入發送緩沖器SBUF的指令,就啟動發送器發送,發送完一幀信息,置「1」TI中斷標志。
(2)方式2和方式3接收
串列口被定義為方式2或方式3接收時,數據從RXD端輸入,置REN=1以後,開始接收過程。當檢測到RXD端從高到低的負跳變時,確認起始位有效,開始接收本幀的其餘信息。在接收完一幀信息後,在RI=0、SM2=0時,或接收到第9位數據為「1」時,8位數據裝入接收緩沖器,第9位數據裝入SCON中RB8,並置RI=1。若不滿足上述的兩個條件,接收到的信息將會丟失,也不置位RI
2. 單片機,什麼是串列口,什麼是並行口
兩種介面都是用來傳送二進制數據的介面形式。
串列介面,一般有一根時鍾線,一根數據線,一個時鍾周期傳送二進制1位,要傳送一個位元組至少需要8個時鍾周期,串列線根數少,遠程傳輸抗干擾能力強,成本低。
並行介面,比如8位並行介面,除具備時鍾線外,還有8根數據線,另外還有幾根輔助信號線,一個時鍾8位數據全部可傳送完畢,並行線根數多,電纜成搭滾本高、容易受干擾因而距離受限(電纜長度受限)。
單片機的硬體特性:
1、主流單片機包括碰胡CPU、4KB容量的RAM、128 KB容量的ROM、 2個16位定時/計數器、4個8位並行口、全雙工串口行口、ADC/DAC、SPI、I2C、ISP、IAP。
2、系統結構簡單,使用方便,實現模塊化。
3、單片機可靠性高,可工作到10^6 ~10^7小時無故障。
4、處理功能強,速度快。
5、低電壓,低功耗,便於生產攜帶型產品。笑枝攔
6、控制功能強。
7、環境適應能力強。
3. 單片機串列通信程序調試原因
串口UART作為嵌入式應用和通訊領域中最常用的介面之一,介面協議雖然簡單,但在實際應用中不同設備之間的通訊也會存在各種小問題,下面對使用中各種常見的問題做下總結和梳理,可作為調試參考。串口可分為非同步串口(UART)和同步串口(USART),後者多出時鍾信號線用作通訊時信號同步。本偏僅介紹非同步串口。
一、串口通信常見問題
串口通信亂碼
串口通訊亂碼通常是指接收方接收到的數據不符合預期,出現此情況時需要考慮的因素通常包含以下幾個方面:
雙方設定的串口參數是否匹配,需檢查設置的:串口波特率、串口數據格式等參數。
串口通訊電壓不匹配,不同的串口設備接收可正常進行解碼的高低電平門限不同,如同樣是3.3V串口通訊,A設備低電平門限1.5V,B設備低電平門限1V。當實際串口電壓低電平只有1.5V時,B設備無法正常接收數據。又如:A設備為5V串口,B設備為3.3V串口,同樣有電壓不匹配的問題。
串口通訊實際工作波特率誤差較大,即:串口工作實際波特率和理論值偏差較大,因一些MCU和串口設備所用時鍾為了兼顧其他資源和應用需要,實際工作的串口速率和設定會有偏差。比如:標稱為9600bps時,實際工作在了10000bps(誤差超過4%),此時可能已經超出接收方的設計標准。
串口通訊信號質量差,如通訊時信號上升下降抖動嚴重,信號有過沖或者變化比較遲緩,此時檢查硬體上共地是否良好,以及線路上有無串接/並聯其他器件導致。
數據格式顯示塌稿桐問題,通常使用十六進制或ASCII碼格式居多,使用時需要區分。
串口無法發送
串口無法發送通常是指與此串口的TXD連接的對端設備RXD通道接收不到任何數據,總結如下:
使用儀器對TXD通道進行實際測量,觀察硬體波形,確定信號是否有輸出以及是否正常。(串口電壓、串口信號上升下降時間)
短接設備的TXD和RXD通道回環測試,看自收發是否敬臘可以成功。排除是自身設備異常還是對端異常。
確定應用軟體是否打開串口硬體流控,如當啟用RTS/CTS硬體流控後但實際該引腳並沒有連接或連接但不生效時,按照協議規定,CTS輸入無效則發送方暫停發送數據。
MCU軟體編碼問題或計算機端軟體工作異常。
串口無法接收
當串口接收不到任何數據的原因通常如下:
對端串口實際未能成功發送數據。
串口發送有效電壓不滿足晶元接收解碼要求。
MCU軟體編碼問題或計算機端軟體工作異常。
二、常用的排查小技巧
對於以上的常見串口調試問題,有以下幾個方法和技巧可供參考使用。
使用硬體儀器
善於使用示波器等硬體採集或分析工具查找問題,用此方法可以確定線路上信號的串口電壓、串口數據格式、串口通信波特率等參數。
串口Loopback檢測
當手頭沒有硬體儀器時,將設備自身的團坦TXD和RXD短接起來進行自收發測試也是一個不錯的選擇,此方式可以簡單確認硬體通路和整個邏輯是否是打通的。但缺點是定位問題不夠精準。
更換串口調試軟體
計算機端串口軟體種類較多,不排除一些設備或驅動軟體沒法成功適配所有的串口調試軟體,此時可嘗試多使用幾款不同的軟體對比測試。
三、串口通信基礎
當兩個設備使用UART進行通信時,它們至少通過三根導線連接:TXD串口發送、RXD串口接收、GND。串口設備通過改變TXD信號線上的電壓來發送數據,接收端通過檢測RXD線上的電壓來讀取數據。
什麼是串口通信
計算機一次傳輸信息(數據)一位或多個比特位。串列是指傳輸數據一次只傳輸一位。當進行串口通信時發送或者接收的每個字(即位元組或字元)一次發送一位。每一位都是邏輯『1』或者『0』。也用Mark表示邏輯1,Space表示邏輯0。
串口數據速率使用 bits-per-second ("bps") 或者 baud rate ("baud")。這表示一秒內可以傳輸多少邏輯1和0。當波特率超過 1000,你會經常看到用Kbps表示的速率。對於超過 1000000 的速率一般用Mbps 來表示。
4. AT89S51單片機串列口的4種工作方式各有什麼功能和特點
AT89S51單片機串列口有四種工作方式,分別是模式0、模式1、模式2和模式3,下面是各自的功能和特點:
1. 模式0:同步移位輸入/輸出方式
- 功能:在這種模式下,串列埠可以進行同步移位輸入和輸出,即每次只能輸入或輸出一個數據位。
- 特點擾孫:數據傳輸速率較慢,但在數據傳輸過程中,不需要外部時鍾源,因此成本較低。
2. 模式1:非同步移位輸入/輸出方式
- 功能:在這種模式下,串列埠可以進行非同步移位輸入和輸出,即可以一次性輸入或輸出多個數據位。
- 特點:數據傳輸速率較快,但需要外部時鍾源,因此成本較高。
3. 模式2:帶自動波特率檢測的非同步移位輸入/輸出方式
- 功能:在這種模緩盯鏈式下,串列埠可以進行非同步移位輸入和輸出,並自動檢測波特率。
- 特點:數據傳輸速率較快,且可以自動檢測波特率,但需要外部時鍾源,因此成本較高。
4. 模式3:多機通訊方式
- 功能:在這種模式下,串列埠可以進行多機通訊,可以同時收發數據。
- 特點:可以實現多機通訊和數據的同時收發則坦,但需要外部時鍾源,成本較高。
總的來說,不同的工作模式適用於不同的應用場景,需要根據具體的項目需求來選擇合適的工作模式。
5. 求助:單片機串列口輸出的數據是什麼類型
是全雙工通用串口,ttl電平,如果需要和其它主機進行通訊進行電平轉換,直接接max232就可認。
6. 求助:單片機串列口輸出的數據是什麼類型
單片機串口輸出的只是數據,7位或8位察棗或者9位,此轎數據類型要靠程序來判斷和處理。串口本身是無法決定的。一次只敗扒拆能傳送一幀數據。
7. 單片機串列通訊和並行通訊的區別是什麼
單片機串列通訊與並行通訊區別
一條信息的各位數據被逐位按順序傳送的通訊方式稱為串列通訊。串列通訊的特點是:數據位傳送,傳按位順序進行,最少只需一根傳輸線即可完成,成本低但送速度慢。串列通訊的距離可以從幾米到幾千米。 根據信息的傳送方向,串列通訊可以進一步分為單工、半雙工和全雙工三種。信息只能單向傳送為單工;信息能雙向傳送但不能同時雙向傳送稱為半雙工;信息能夠同時雙向傳送則稱為全雙工。 串列通訊又分為非同步通訊和同步通訊兩種方式。在單片機改彎段中,主要使用非同步通訊方式。
串列通訊中,兩個設備之間通過一對信號線進行通訊,其中一根為信號線,另外一根為信號地線,信號電流通過信號線到達目標設備,再經過信號地線返回,構成一個信號迴路。
初級讀者會產生疑問:為何不讓信號電流從電源地線返回?答案:公共地線上存在各種雜亂的電流,可以輕而易舉地把信鬧檔號淹沒。因此所有的信號線都使用信號地線而不是電源地線,以避免干擾。
這一對信號線每次只傳送1bit(比特)的信號,比如1Byte(位元組)的信號需要8次才能發完。傳輸的信號可以是數據、指令或者控制信號,這取決於採用的是何種通訊協議以及傳輸狀態。串列信號本身也可以帶有時鍾信息,並且可以通過演算法校正時鍾。因此不需要額外的時鍾信號進行控制。
並行通訊中,基本原理與串列通訊沒有區別。只不過使用了成倍的信號線路,從而一次可以傳送更多bit的信號。
並行通訊通常可以一次傳送8bit、16bit、32bit甚至更高的位數,相應地就需要8根、16根、32根信號線,同時需要加入更多的信號地線。比如傳統的PATA線路有40根線,其中有16根信號線和7根信號地線,其他為各種控制線,一次可以傳送2Byte的數據。並行通訊中,數據信號中無法攜帶時鍾信息,為了保證各對信號線上的信號時序一致,並行設備需要嚴格同步時鍾信號,或者採用額外的時鍾信號線。
通過串列通訊與並行通訊的對比,可以看出:串列通訊很簡單,但是相對速度低;並行通訊比較復雜,但是相對速度高。更重要的是,串列線路僅使用一對信號線,線路成本低並且抗干擾能力強,因此可以用在長距離通訊上;而並行線路使用多對信號線(還不包括額外的控制線路),線路成本高並且抗干擾能力差,因此對通訊距離有非常嚴核譽格的限制。
8. 簡述單片機串列口的工作方式
89系列單片機的串列通信有4種工作方式:
1、方式0是同步移位寄存器方式,幀格式8位,波特率固定為fosc/12。
2、方式1是8位非同步通信方式,幀格式10位,波特率可變:T溢出率/n(n= :32或16)。
3、方式2是9位非同步通信方式,幀格式11位,波特率固定: fosc/n(n=32 或16)。
4、方式3是9位非同步通信方式,幀格式11位,波特率可變:T溢出率(m=32或16)。
方式1、2、3的區別主要表現在幀格式及波特率兩個方面。
單片機應用范圍:
單片機滲透到我們生活的各個領域。導彈的導航裝置,飛機上各種儀表的控制,計算機的網路通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄像機、攝像機、全自動洗衣機的控制等等。
還有自動控制領域的機器人、智能儀表、醫療器械以及各種智能機械。因此,單片機的學習、開發與應用將造就一批計算機應用與智能化控制的科學家、工程師。
9. 單片機同步串列數據與非同步串列數據的區別
一般來說非同步串虧飢行每個信息單元之間有控制信號,發送和接收端分別用近似的鬧並時鍾工作,標准設備就是串口。同步串列一般會有一個時鍾信號,收發端均以該時鍾信號銷彎返為收發時鍾,該信號一般由發送端產生,每個信息單元之間不再有起始,終於控制。
iic也算是同步串列設備。
10. 單片機串口讀進的數據是什麼數據
1、通信至少需要兩台設備。者舉
2、單片機的串口可以連首返碧接到另外一台具有UART功能的設備,如另一台單片機或電腦。
3、讀進的數據並不是單片機本身的內容,而是另一世襪台設備發出的。
4、符合非同步串列通信幀格式和約定波特率的字元。