串口通信測試方法_第1頁
串口通信測試方法_第2頁
串口通信測試方法_第3頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、串口通信測試方法時(shí)間:2021.03.01創(chuàng)作:歐陽語1關(guān)于串口通信的一些知識:RS-232C是目前最常用的串行接口標(biāo)準(zhǔn),用來實(shí)現(xiàn)計(jì)算機(jī) 和計(jì)算機(jī)之間、計(jì)算機(jī)和外設(shè)之間的數(shù)據(jù)通信。在PC機(jī)系統(tǒng)中都裝有異步通信適配器,利用它可以實(shí)現(xiàn) 異步串行通信。而且MCS-51單片機(jī)本身具有一個(gè)全雙工的 串行接口,因此只要配以電平轉(zhuǎn)換的驅(qū)動(dòng)電路、隔離電路就 可以組成一個(gè)簡單可行的通信接口。由于MCS-51單片機(jī)的輸入和輸出電平為TTL電平,而 PC機(jī)配置的是RS-232C標(biāo)準(zhǔn)串行接口 z二者電氣規(guī)范不一 致,因此要完成PC機(jī)與單片機(jī)的數(shù)據(jù)通信,必須進(jìn)行電平 轉(zhuǎn)換。注明:3 ) RS-232C上傳送的數(shù)字量采用

2、負(fù)邏輯,且與地對 稱邏輯 1 : -3 -15V邏輯0 : +3-+15V所以與單片機(jī)連接時(shí)常常需要加入電平轉(zhuǎn)換芯片:2實(shí)現(xiàn)串口通信的三個(gè)步驟:(1) 硬件連接51單片機(jī)有一個(gè)全雙工的串行通訊口 ,所以單片機(jī)和計(jì) 算機(jī)之間可以方便地進(jìn)行串口通訊。進(jìn)行串行通訊時(shí)要滿足 一定的條件,比如計(jì)算機(jī)的串口是RS232電平的,而單片機(jī) 的串口是TTL電平的,兩者之間必須有一個(gè)電平轉(zhuǎn)換電路, 我們采用了專用芯片MAX232進(jìn)行轉(zhuǎn)換。我們采用了三線 制連接串口,也就是說和計(jì)算機(jī)的9針串口只連接其中的3 根線:第5腳的GND、第2腳的RXD、第3腳的TXD。電 路如下圖所示,MAX232的第10腳和單片機(jī)的11

3、腳連接, 第9腳和單片機(jī)的10腳連接,第15腳和單片機(jī)的20腳連 接。使用MAX232串口通信電路圖(9孔串口接頭)(2) 串行通信程序設(shè)計(jì)通信協(xié)議的使用通信協(xié)議是通信設(shè)備在通信前的約走。單片機(jī)、計(jì)算機(jī) 有了協(xié)議這種約定,通信雙方才能明白對方的意圖,以進(jìn)行 下一步動(dòng)作。假定我們需要在PC機(jī)與單片機(jī)之間進(jìn)行通信, 在設(shè)計(jì)過程中,有如下約定:0x31 : PC機(jī)發(fā)送0x31 ,單片機(jī)回送0x01 z表示選擇本 單片機(jī);Ox* : PC機(jī)發(fā)送Ox* ,單片機(jī)回送Ox* ,表示選擇單 片機(jī)后發(fā)送數(shù)據(jù)通信正常;在系統(tǒng)工作過程中,單片機(jī)接收到PC機(jī)數(shù)據(jù)信息后,便 查找協(xié)議”完成相應(yīng)的操作。串行通信程序設(shè)計(jì)

4、主要有微機(jī)發(fā)送接收程序和單片機(jī)發(fā)送 接收程序,微機(jī)上的發(fā)送和接收程序主要采用計(jì)算機(jī)高級語 言編寫,如C語言,因?yàn)榱四軌蛟谟?jì)算機(jī)端看到單片機(jī)發(fā)出的數(shù)據(jù),我們必須借助一個(gè)WINDOWS軟件進(jìn)行觀察,這里利用如下圖標(biāo)的一個(gè)免費(fèi)計(jì)算機(jī)串口調(diào)試軟件,故而這一 塊計(jì)算機(jī)通信的程序可不寫!在單片機(jī)上主要用匯編或C編寫,在使用串口之前,必 須先對串口進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1、 串口控制和中斷控制。具體步驟如下:(1) 確走定時(shí)器1的工作方式編程TMOD寄存器(設(shè) 置波特率);(2) 確定串口的控制編程SCON;(3) 串口的中斷方式,必須開CPU和源中斷編寫IE寄 存器;(4 )計(jì)算定時(shí)器1

5、的初值裝載TH1Z TL1 ;(5 )啟動(dòng)定時(shí)器1編程TCON中的TR1位。為何串行的工作方式選擇方式1,這是針對于我們平常最 常用的,單純一塊板對應(yīng)于我們的私人電腦,所以就無須考 慮是哪一塊板發(fā)來的信息很卩無須分清是數(shù)據(jù)幀還是地址幀。因?yàn)榇藭r(shí)屬于直通方式,所以無須考慮的。 方式I為波特率可變的10位異步通訊接口方式,發(fā)送或接 收一幀信息包括1個(gè)起始位0 ,8個(gè)數(shù)據(jù)位和一個(gè)停止位1 其中的起始位和停止位在發(fā)送時(shí)自動(dòng)插入的。輸出:當(dāng)單片機(jī)執(zhí)行一條指令將數(shù)據(jù)寫入發(fā)送緩沖SBUF且 TI=0時(shí),就啟動(dòng)發(fā)送。串行數(shù)據(jù)從TXD引腳輸出,發(fā)送完 一幀數(shù)據(jù)后,就有硬件置位TI。輸入:在(REN ) =1時(shí),

6、串行口采樣RXD引腳,當(dāng)采樣到 1到0的跳變時(shí),確認(rèn)是串行發(fā)送來的一幀數(shù)據(jù)的開始位0 , 從而開始接收一幀數(shù)據(jù)。在接收到附加的第9位數(shù)據(jù)后,當(dāng) 滿足(1) RI二0 ( 2 ) SM2=0或接收到的第9位數(shù)據(jù)為1時(shí), 第9位數(shù)據(jù)(停止位)才進(jìn)入RB8Z 8位數(shù)據(jù)才能進(jìn)入接收 寄存器,并由硬件置位中斷標(biāo)志RL否則信息丟失。所以在方 式1接收時(shí),應(yīng)先用軟件清零RI和SM2標(biāo)志。通常串行接 口以方式1工作時(shí),SM2置為0.而我們現(xiàn)實(shí)中需要的是一個(gè)機(jī)器中多塊板進(jìn)行顯示和讀取數(shù) 據(jù),所以這里不得不采取SM2 = 1的多機(jī)通信,而且我們一 般采取的方式為方式3 , TB8發(fā)送數(shù)據(jù)位,在模式2和3是 要發(fā)送

7、的第9位。該位可以用軟件根據(jù)需要置位或清除z通 常這位在通信協(xié)議中做奇偶位,在多處理機(jī)通信中這一位則 用于表示是地址幀還是數(shù)據(jù)幀。這里就可以根據(jù)地址判斷出 我們需要選取的板是不是方位監(jiān)測板。注明:如果用C語言來寫的話,無論你是先發(fā)地址幀然后 數(shù)據(jù)幀,還是只發(fā)數(shù)據(jù)幀,最后顯示的都是一樣的內(nèi)容,而 匯編語言是不行的。SM2 :多機(jī)通信控制位”僅用于方式2和方式3.接收狀態(tài)時(shí),當(dāng)串行口工作于方式2或3時(shí),以及 SM2 = 1時(shí),只有當(dāng)接收到的第九位數(shù)據(jù)為1時(shí),才把接收 到的前8位數(shù)據(jù)送入SBUF ,且置位RI發(fā)出中斷申請,否則 會將接收至啲數(shù)據(jù)丟棄。而當(dāng)SM2=0時(shí),就不管接收到的 第九位數(shù)據(jù)為多少

8、,直接送入并申請中斷,因?yàn)檫@個(gè)時(shí)候是 直通方式。注明:這里如果在SM2 = 1的時(shí)候,發(fā)來的是數(shù)據(jù)而不 是地址,則不會發(fā)出中斷請求,不會進(jìn)入中斷服務(wù)程序。(就 像我一直以為要判斷數(shù)據(jù)是第一次發(fā)來的還是SM2=0后發(fā) 來的,其實(shí)不需要)如不需要 MOV A,SCON;判斷是不是第二次中斷 后發(fā)來的數(shù)據(jù)CJNE A,#90H,WAIT發(fā)來的如果是數(shù)據(jù),能夠進(jìn)入中斷服務(wù)程序的一定是 SM2清零后的數(shù)據(jù)。方式2為固定波特率的11位UART方式,它比方式1增加 了一位可程控為1或0的第9位數(shù)據(jù)。輸出:發(fā)送的串行數(shù)據(jù)由TXD端輸出一幀信息為11位, 附加的第9位來自SCON寄存器的TB8位,用軟件置位或

9、復(fù)位。它可作為多機(jī)通信中地址、數(shù)據(jù)信息的標(biāo)志位;也可 以作為數(shù)據(jù)的奇偶校驗(yàn)位。當(dāng)單片機(jī)執(zhí)行一條數(shù)據(jù)寫入 SUBF的指令且TI=O時(shí),就啟動(dòng)發(fā)送器發(fā)送。發(fā)送一幀信息 后,置位中斷標(biāo)志TI,發(fā)送完一個(gè)之后,如果TI不清零的話, 則會一直發(fā)送在發(fā)送緩沖器里的數(shù)據(jù)JNBTIZ$CLR TI。輸入:在(REN ) =1時(shí),串行口采樣RXD引腳,當(dāng)采樣到 1到0的跳變時(shí),確認(rèn)是串行發(fā)送來的一幀數(shù)據(jù)的開始位0 , 從而開始接收一幀數(shù)據(jù)。在接收到附力啲第9位數(shù)據(jù)后,當(dāng) 滿足(1) RI=O ( 2 ) SM2=0或接收到的第9位數(shù)據(jù)為1時(shí), 第9位數(shù)據(jù)(地址位或者數(shù)據(jù)位)才進(jìn)入RB8 , 8位數(shù)據(jù)才 能進(jìn)入接

10、收寄存器,并由硬件置位中斷標(biāo)志RI ,此時(shí)申請中 斷,進(jìn)入中斷服務(wù)程序.RB8=1;標(biāo)志此時(shí)是一個(gè)地址幀,SM2 = 1時(shí),將地址轉(zhuǎn) 入SBUF ,置位RI ,發(fā)出中斷請求,若相符,則將從機(jī)的 SM2清零,變成直通方式,準(zhǔn)備接受其后傳送來的數(shù)據(jù)。 RB8二0 ;數(shù)據(jù)幀,對SM2 = 1, RB8=0的從機(jī)接收到直接丟 棄,而對SM2=0的從機(jī),直通方式,不論RB8是0還是1 , 都將接受并將置位,發(fā)出中斷請求。注明:多機(jī)處理通信方式,首先保證每一臺從機(jī)在系 統(tǒng)中的編號是唯一的。系統(tǒng)初始化時(shí),將所有從機(jī)中的SM2均置1,并處于允許串行口中斷接收狀態(tài)。主機(jī)欲與某從機(jī)通信時(shí),先向所有從機(jī)發(fā)出從機(jī)的地

11、址”然 后才接著發(fā)命令或者數(shù)據(jù)。在主機(jī)發(fā)地址時(shí),置第9位數(shù)據(jù) (TB8為1 ),表示主機(jī)發(fā)送的是地址幀,然后才將第9位數(shù) 據(jù)(TB8 )清0 ,發(fā)送命令或數(shù)據(jù)。3觀察結(jié)果:下面列舉一個(gè)使用的串口通信測試軟件,其功能為,將 PC機(jī)鍵盤的輸入發(fā)送給單片機(jī)”單片機(jī)收到PC機(jī)發(fā)來的數(shù) 據(jù)后”回送同一數(shù)據(jù)給PC機(jī),并在屏幕上顯示出來,只要 兩者相同,則說明兩者之間的通信正常。在PC上打開軟件串口調(diào)試器巳設(shè)置端口號COM1,波 特率4800 ”數(shù)據(jù)位8 ,停止位1,打開串口 ”并勾選發(fā)送區(qū) 的十六進(jìn)制”與接收區(qū)的”十六進(jìn)制”。發(fā)送數(shù)據(jù)時(shí)根據(jù) 通信協(xié)議將一幀通信數(shù)據(jù)劃分為地址碼和功能數(shù)據(jù)碼。要完 成一幀通信

12、數(shù)據(jù)的發(fā)送,要在串口調(diào)試器exe分先后兩次發(fā) 送實(shí)現(xiàn)。首先發(fā)送地址,如圖2所示操作:圖2接下來,發(fā)送功能數(shù)據(jù)碼操作如圖3所示:圖3注:在切換發(fā)送地址碼和功能數(shù)據(jù)碼時(shí),都要先關(guān)閉串口,再設(shè)置校驗(yàn)位,要發(fā)送時(shí)再打開串口。還有就是不同版 本的串口調(diào)試器,可能在發(fā)送數(shù)據(jù)功能碼時(shí)是否加空格分開 有一定的區(qū)別。4通信故障分析過程如果串口通信不行的話”按以下步驟進(jìn)行檢查:1=1 將MAX232芯片翹起來,將MAX232的7腳和8腳用 子短路,則在串口調(diào)試器上自動(dòng)發(fā)送一個(gè)數(shù)值,則應(yīng)回顯 同樣的一個(gè)數(shù)值,如果可回顯,則表示電腦的串口是可以正 常通信了,如果不行,則代表電腦的串口不行,重新更換電 腦; 如果電腦的串口可以的話z則查看MAX232是否正常, 則拿輾子將單片機(jī)的第10腳和第11腳短路,則串口同樣可 以自動(dòng)收發(fā)數(shù)據(jù),如果不行的話,則為MAX232芯片有問 題:先更換芯片;如果芯片正常,則奩看外圍的極性電容是否正常悍接,-般不正常悍接極性電容也會出現(xiàn)以上問題; 如果以上檢查都正常,出現(xiàn)串口通信沒有回送數(shù)值,則代 表單片機(jī)工

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論