畢業(yè)答辯監(jiān)控系統(tǒng)中異步串行通信接口程序設(shè)計(jì)_劉忠建_第1頁(yè)
畢業(yè)答辯監(jiān)控系統(tǒng)中異步串行通信接口程序設(shè)計(jì)_劉忠建_第2頁(yè)
畢業(yè)答辯監(jiān)控系統(tǒng)中異步串行通信接口程序設(shè)計(jì)_劉忠建_第3頁(yè)
畢業(yè)答辯監(jiān)控系統(tǒng)中異步串行通信接口程序設(shè)計(jì)_劉忠建_第4頁(yè)
畢業(yè)答辯監(jiān)控系統(tǒng)中異步串行通信接口程序設(shè)計(jì)_劉忠建_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、題目:監(jiān)控系統(tǒng)中異步串行通信接口程序設(shè)計(jì)監(jiān)控系統(tǒng)中異步串行通信接口程序設(shè)計(jì)學(xué) 院:電氣與電子工程學(xué)院電氣與電子工程學(xué)院專(zhuān)業(yè)班級(jí):電氣工程及其自動(dòng)化電氣工程及其自動(dòng)化 0707級(jí)鐵道電氣化級(jí)鐵道電氣化1 1班班學(xué)生姓名:劉忠建劉忠建同組成員:甘小圓甘小圓指導(dǎo)教師:申申 惠惠 監(jiān)控系統(tǒng)中異步串行通信接口程序設(shè)計(jì)監(jiān)控系統(tǒng)中異步串行通信接口程序設(shè)計(jì)摘要摘要 通信是指計(jì)算機(jī)與外界的信息傳輸,既包括計(jì)算機(jī)與計(jì)算機(jī)之間的傳輸,也包括計(jì)算機(jī)與外部設(shè)備,如終端、打印機(jī)和磁盤(pán)等設(shè)備之間的傳輸。隨著計(jì)算機(jī)網(wǎng)絡(luò)化和微機(jī)分級(jí)分布式應(yīng)用系統(tǒng)的發(fā)展,通信的功能越來(lái)越重要。 現(xiàn)代生產(chǎn)生活中,為了保證對(duì)系統(tǒng)可靠性越來(lái)越高的要求

2、,采用了大量自動(dòng)化設(shè)備來(lái)進(jìn)行日常生產(chǎn)、管理和設(shè)備維修保養(yǎng),既可以監(jiān)控系統(tǒng)運(yùn)轉(zhuǎn)性能和進(jìn)行故障預(yù)測(cè),又可以為維修保養(yǎng)提供原始資料。隨著自動(dòng)化技術(shù)的發(fā)展和逐漸普及的自動(dòng)化生產(chǎn),越來(lái)越多的生產(chǎn)設(shè)備配備了與計(jì)算機(jī)進(jìn)行數(shù)據(jù)交換的接口,利用計(jì)算機(jī)的強(qiáng)大處理能力對(duì)檢測(cè)到的數(shù)據(jù)進(jìn)行處理。串行通信因?yàn)槠湔Q生時(shí)間早,使用簡(jiǎn)單方便,成本低廉,可以適應(yīng)大規(guī)模長(zhǎng)距離傳輸?shù)榷喾N特點(diǎn),一直得到各個(gè)領(lǐng)域的廣泛應(yīng)用,尤其在工業(yè)自動(dòng)化領(lǐng)域,大量的設(shè)備和系統(tǒng)采用串行通信方式進(jìn)行信息交換。在應(yīng)用中,異步串行通信應(yīng)用較多,而通用異步收發(fā)器(UART)在其中起著至關(guān)重要的作用。 本課題就是就是針對(duì)UART的特點(diǎn),利用C語(yǔ)言設(shè)計(jì)異步串行通信

3、接口程序,在硬件調(diào)試中達(dá)到雙方通信的目的。關(guān)鍵詞:異步串行通信;異步通信收發(fā)器;關(guān)鍵詞:異步串行通信;異步通信收發(fā)器;RS232標(biāo)準(zhǔn);標(biāo)準(zhǔn);C語(yǔ)言語(yǔ)言 程序設(shè)計(jì) 作為系統(tǒng)的外設(shè),異步通信適配器和中斷控制器都有其對(duì)應(yīng)的I/O 口地址,所以本文采用 C 語(yǔ)言函數(shù)庫(kù)中的尋址函數(shù) outportb ()和函數(shù) inportb()對(duì)上述芯片進(jìn)行直接讀寫(xiě)操作。參數(shù)說(shuō)明:ComPortAddr 串口端口地址(COM1口是03F8,COM2口是02F8H)IntVectNum 中斷處理號(hào)Baud 波特率Data 數(shù)據(jù)位位數(shù)Stop 停止位位數(shù)Parity 奇偶校驗(yàn)位(0無(wú)校驗(yàn)、1奇校驗(yàn)、2偶校驗(yàn))程序設(shè)計(jì)程序

4、設(shè)計(jì)u初始化程序設(shè)計(jì)u中斷服務(wù)程序u收發(fā)字符程序u主函數(shù)u 初始化程序設(shè)計(jì) 初始化串行通信口編程的內(nèi)容是:確定數(shù)據(jù)傳輸幀格式(包括數(shù)據(jù)位長(zhǎng)度、停止位長(zhǎng)度及有無(wú)奇偶校驗(yàn)和校驗(yàn)的類(lèi)型)、確定傳輸波特率以及確定INS8250的操作方式。操作方式是指自發(fā)自收的循環(huán)反饋方式(用于診斷)還是通常的兩點(diǎn)之間的通信方式,是程序查詢方式傳送還是中斷方式傳送(課題要求采用中斷方式傳送)。初始化程序設(shè)計(jì)首先定義串口初始化函數(shù)InitCOM()。n確定數(shù)據(jù)傳輸幀格式要用到通信線路控制寄存器n確定傳輸波特率要用到通信線路控制器和除數(shù)鎖存器n確定INS8250的操作方式要用到調(diào)制解調(diào)控制寄存器和中斷允許寄存器。采用中斷方

5、式,還必須對(duì)8259A芯片的中斷屏蔽寄存器進(jìn)行操作,開(kāi)放IQR4的中斷,即允許COM1口提出中斷請(qǐng)求。 要進(jìn)行初始化程序設(shè)計(jì)就必須利用尋址函數(shù)對(duì)所需寄存器進(jìn)行讀寫(xiě)操作中斷服務(wù)程序 中斷服務(wù)程序,即從COM1口接收數(shù)據(jù),可以首先定義interrupt far asyncint()函數(shù),一個(gè)Buffer數(shù)組,讀取字符到緩沖區(qū),待緩沖區(qū)滿后,再指針復(fù)位。在通過(guò)尋址函數(shù)對(duì)8259A的寄存器進(jìn)行寫(xiě)操作,使中斷結(jié)束 收發(fā)字符程序n接收字符程序 首先定義一個(gè)read_char()函數(shù),用來(lái)讀取緩存區(qū)里的數(shù)據(jù),我們可定義兩個(gè)變量buffin和buffout,buffin代表存儲(chǔ)在緩存區(qū)中的數(shù)據(jù)個(gè)數(shù),buffo

6、ut代表已經(jīng)從緩存區(qū)中讀取的數(shù)據(jù)個(gè)數(shù)。通過(guò)這兩變量的比較,確定緩存區(qū)是否還有未被讀取的數(shù)據(jù)。當(dāng)buffin不等于buffout時(shí)表示緩存區(qū)有未讀數(shù)據(jù),此時(shí)我們要讀出緩存區(qū)數(shù)據(jù)并返回此值;當(dāng)buffin與buffout相等,表示緩存區(qū)中無(wú)可讀數(shù)據(jù)。收發(fā)字符程序 n發(fā)送字符程序 首先定義send_char()函數(shù)。通過(guò)對(duì)8250芯片的通信線路狀態(tài)寄存器進(jìn)行讀操作來(lái)判斷發(fā)送移位寄存器是否為空,如果為空,則把待發(fā)送的數(shù)據(jù)輸出到發(fā)送移位寄存器;如果不為空,則等待。主函數(shù) 首先調(diào)用初始化串口函數(shù)InitCOM(),設(shè)置一個(gè)屏幕提示信息,再判斷鍵盤(pán)是否有動(dòng)作。如果是,則讀取鍵盤(pán)值存于Unchar參數(shù)中,再判

7、斷Unchar是否為Ox1B(ESC鍵鍵值),如果是則調(diào)用read_char()函數(shù),如果不是,則屏幕輸出鍵盤(pán)輸入字符。如果鍵盤(pán)沒(méi)動(dòng)作,則調(diào)用read_char()函數(shù),然后再判斷是否有字符可讀,有則讀取,退出。沒(méi)有則循環(huán)。異步串行通信接口程序調(diào)試n單機(jī)測(cè)試方式單機(jī)測(cè)試方式 首先我們用Turbo C編譯器來(lái)調(diào)試程序,在Turbo C中編譯運(yùn)行程序后,得到一個(gè)可執(zhí)行文件。 如果單機(jī)僅僅擁有一個(gè)RS232串口,那么在該機(jī)上運(yùn)行該可執(zhí)行文件,再將RS232連接線的第2引腳(RxD)與第3引腳(TxD)短路,因?yàn)榈?引腳和第3引腳分別為接收數(shù)據(jù)和發(fā)送數(shù)據(jù),這樣的話由第3引腳的輸出信號(hào)就會(huì)被發(fā)送到第2引

8、腳而送到同一串行端口的輸入緩沖區(qū),即可將數(shù)據(jù)讀入,進(jìn)入測(cè)試過(guò)程。異步串行通信接口程序調(diào)試n近距離兩臺(tái)通信設(shè)備測(cè)試方式近距離兩臺(tái)通信設(shè)備測(cè)試方式 如果要在兩臺(tái)計(jì)算機(jī)之間進(jìn)行串口通信,則要分別在兩臺(tái)計(jì)算機(jī)上運(yùn)行該可執(zhí)行文件,并且交換RS232標(biāo)準(zhǔn)線的第2引腳和第3引腳的連線,即將標(biāo)準(zhǔn)線一頭的第2引腳連到另一頭的第3引腳,將另一頭的第3引腳連到這一頭的第2引腳,這樣第3引腳的輸出信號(hào)就會(huì)被發(fā)送到第2引腳而被接收。 調(diào)試結(jié)果 采用MODEM方式調(diào)試 n制作四線專(zhuān)線通信線 做一根兩個(gè)Modem之間專(zhuān)線通信用的線。這里使用兩個(gè)水晶頭,外加網(wǎng)線上的纜線。并且按照下圖所示來(lái)完成線的制作。設(shè)置調(diào)制解調(diào)器n設(shè)置波特率。設(shè)置調(diào)制解調(diào)器的波特率為2400bps,這樣更有利于通信。n設(shè)置發(fā)問(wèn)方和應(yīng)答方。兩臺(tái)調(diào)制解調(diào)器必須有一個(gè)為發(fā)送數(shù)據(jù),另一個(gè)為接收數(shù)據(jù),也就是我們說(shuō)的發(fā)問(wèn)方和應(yīng)答方。并非雙方都可以進(jìn)行發(fā)送和接收。這是很重要的一點(diǎn)。n要求為四線專(zhuān)線通信方式,所以在設(shè)置Modem時(shí),也要設(shè)置通信方式為四線專(zhuān)線。設(shè)置調(diào)制解調(diào)器n設(shè)置四線專(zhuān)線通信協(xié)議。我們用的調(diào)制解調(diào)器里有兩種協(xié)議,分別為L(zhǎng)APM和MNP,我們只能在兩臺(tái)調(diào)制解調(diào)器中選擇同樣的一個(gè)協(xié)議,以免通信出錯(cuò)。n設(shè)置速率。n注:做到這里,調(diào)制解調(diào)器也快設(shè)置完了。但是還有最重要的一點(diǎn),那就是保持設(shè)置。只有保持了設(shè)置,下次通信時(shí)就不會(huì)需要重新設(shè)置了

溫馨提示

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

評(píng)論

0/150

提交評(píng)論