S3C44B0的串口服務(wù)器系統(tǒng)的設(shè)計_第1頁
S3C44B0的串口服務(wù)器系統(tǒng)的設(shè)計_第2頁
S3C44B0的串口服務(wù)器系統(tǒng)的設(shè)計_第3頁
S3C44B0的串口服務(wù)器系統(tǒng)的設(shè)計_第4頁
S3C44B0的串口服務(wù)器系統(tǒng)的設(shè)計_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、【W(wǎng)ord版本下載可任意編輯】 S3C44B0的串口服務(wù)器系統(tǒng)的設(shè)計 0 引言 目前,煤礦瓦斯、負(fù)壓及電動機(jī)、供電等自動化監(jiān)控裝置已在各大礦井廣泛采用,甚至在個別礦井已組網(wǎng)運(yùn)行。但是,各自動化監(jiān)控裝置絕大部分仍然采用RS232 、RS485 或CAN 總線組網(wǎng)方式,嚴(yán)重影響了礦井安全監(jiān)控系統(tǒng)運(yùn)行的實時性、可靠性、交互性。而工業(yè)以太網(wǎng)從10 M、100 M 帶寬發(fā)展到現(xiàn)在的千兆網(wǎng),已成為礦井監(jiān)控系統(tǒng)的主要組網(wǎng)方式。 因此,如何使現(xiàn)有的基于RS232 、RS485 或CAN 總線的串口設(shè)備以以太網(wǎng)的方式組網(wǎng)運(yùn)行,是目前需要解決的一個問題。本文介紹一種基于S3C44B0的串口服務(wù)器系統(tǒng),該服務(wù)器系統(tǒng)

2、可將串口數(shù)據(jù)轉(zhuǎn)換成TCP/ IP 協(xié)議開展數(shù)據(jù)傳輸,具有廣泛的應(yīng)用前景。 1 系統(tǒng)硬件構(gòu)造 基于S3C44B0 的串口服務(wù)器系統(tǒng)硬件構(gòu)造如圖1 所示。 圖1 基于S3C44B0 的串口服務(wù)器系統(tǒng)硬件構(gòu)造圖 該系統(tǒng)主要功能: 從串口設(shè)備讀取數(shù)據(jù),將所得到的數(shù)據(jù)開展TCP/ IP 協(xié)議封裝,通過RJ 45 的接口發(fā)送到上位機(jī),與上位機(jī)的服務(wù)器程序開展交互;同時,將上位機(jī)發(fā)送給串口服務(wù)器的數(shù)據(jù)轉(zhuǎn)發(fā)到串口,進(jìn)而通過網(wǎng)絡(luò)遠(yuǎn)程監(jiān)控現(xiàn)場的串口設(shè)備。 RS232 接口電路如圖2 所示。在本系統(tǒng)中,擴(kuò)展出2 個獨立的串行口,該串行口可以三線通信或者與Modem 通信。該接口采用2 片MAX3232C芯片,其中M

3、AX3232C(1) 負(fù)責(zé)串行口發(fā)送接收信號的電平轉(zhuǎn)換,MAX3232C (2) 完成握手信號的電平轉(zhuǎn)換。處理器S3C44B0 的C10C15 分別作為nRTS1 、nCTS1 、TXD1 、RXD1 、nRTS0 、nCTS0 信號,PE1 和PE2 作為TXD0 和RXD0 信號。 圖2 RS232 接口電路圖 以太網(wǎng)控制器采用在嵌入式領(lǐng)域應(yīng)用廣泛且性價比較高的網(wǎng)絡(luò)控制芯片RTL8019AS ,其接口電路如圖3 所示。 圖3 以太網(wǎng)控制器接口電路圖 圖3 中,RTL8019AS 采用IN T0 中斷方式, 連到S3C44B0 的外部中斷引腳IN T1 。數(shù)據(jù)總線寬度為16 位,因此,RTL

4、8019AS 的引腳IOCS16B 上拉。 RTL8019AS 有3 種工作方式: 跳線方式, 該方式I/ O和中斷由跳線決定;即插即用方式( PnP) , 該方式由軟件開展自動配置; 免跳線方式,該方式I/ O和中斷由外接的EEPROM93C46 中的內(nèi)容決定。 使用何種工作方式由RTL8019AS 的引腳J P 決定,圖3 中引腳J P 上拉, 即選擇跳線方式。 RTL8019AS 的引腳IOS2 上拉,引腳IOS0 、IOS1 、IOS3 懸空(引腳IOS0IOS4 在圖3 中未畫出) ,當(dāng)引腳IOS0 、IOS1 、IOS3 懸空時,每個引腳里有1 個100 k 的下拉電阻,因此,引腳

5、IOS0 、IOS1 、IOS3為低電平, RTL8019AS 的I/ O 基址為200H。 RTL8019AS 片選端AEN 接S3C44B0 的nGCS5 也就是Bank6 ,由于數(shù)據(jù)總線寬度為16 位, S3C44B0的引腳A1 連接RTL8019AS 的引腳SA0 ,因此,對于S3C44B0 來說, RTL8019AS 的I/ O 基址為0X0A000400H。20F001N 為網(wǎng)卡濾波器,其內(nèi)部包含1 對低通濾波器和1 對隔離變壓器,直接與RJ 45相連。 2 系統(tǒng)軟件構(gòu)造 系統(tǒng)軟件建立在Linux 2. 4 內(nèi)核的uClinux 操作系統(tǒng)根底上,采用模塊化設(shè)計,其構(gòu)造組成模塊如圖4

6、 所示。系統(tǒng)軟件的為串口和以太網(wǎng)處理模塊,串口服務(wù)器通過這2 個模塊即可實現(xiàn)串口設(shè)備的聯(lián)網(wǎng)。 圖4 系統(tǒng)軟件構(gòu)造組成模塊圖 由于uClinux 內(nèi)核中含有串口、網(wǎng)口的通用驅(qū)動程序,因此,不必再寫關(guān)于串口及網(wǎng)絡(luò)驅(qū)動程序,只需在內(nèi)核移植時,根據(jù)硬件電路對uClinux 開展裁減移植后,便可實現(xiàn)對串口及網(wǎng)絡(luò)的應(yīng)用編程功能。 uClinux 的設(shè)備管理和文件系統(tǒng)嚴(yán)密結(jié)合,各種設(shè)備都以文件的形式存放在/ dev 目錄下,稱為設(shè)備文件。應(yīng)用程序可以打開、關(guān)閉和讀寫這些設(shè)備文件,完成對設(shè)備的操作,就像操作普通的數(shù)據(jù)文件一樣。所以訪問串口,只需要打開相應(yīng)的設(shè)備文件即可。在uClinux 下,串行口COM1 和

7、COM2 對應(yīng)的設(shè)備分別為/ dev/ t tyS0 和dev/ t tyS1 。串口的編程步驟如下: (1) 打開串口, 采用open ( ) 函數(shù)f d = open( / dev/ t tyS0 ,O_RDWR| O_NOCTTY) ;(2) 若打開成功, 則對串口開展參數(shù)設(shè)置: tcgetat t r ( f d , &oldtio) ;(3) 去除串口緩沖區(qū),因為串口接收和發(fā)送數(shù)據(jù)是從上一組數(shù)據(jù)之后的緩沖區(qū)開始存放的,為了使先前的數(shù)據(jù)不會重復(fù)出現(xiàn),故去除緩沖區(qū)tcflush( f d , TCIFLUSH) ;(4) 讀寫串口,讀串口采用read ( f d ,sbuf ,B U F

8、_L EN) 函數(shù),寫串口采用write ( f d , sbuf , B U F_L EN) ,其中f d 為設(shè)備打開返回的值, sbuf 為存放發(fā)送或接收數(shù)據(jù)的數(shù)據(jù)組, B U F_ L EN 為數(shù)據(jù)的個數(shù);(5) 讀寫完成后關(guān)閉串口,close ( f d) 。 網(wǎng)絡(luò)通信本質(zhì)就是進(jìn)程間的通信,網(wǎng)絡(luò)地址和端口號結(jié)合在一起,才可以共同確定整個Internet中的1 個網(wǎng)絡(luò)進(jìn)程,網(wǎng)絡(luò)進(jìn)程由套接字確定,程序采用Socket 表示。套接字常用的有2 種:流式套接字( St ream Socket ) 和數(shù)據(jù)報套接字(DatagramSocket) 。這2 種套接字的區(qū)別在于它們使用不同的協(xié)議。流式

9、套接字使用TCP 協(xié)議,數(shù)據(jù)報套接字使用UDP 協(xié)議。本系統(tǒng)中采用的協(xié)議為TCP 協(xié)議。具體通信步驟如下: (1) 由socket () 函數(shù)創(chuàng)立偵聽套接字; (2) 通過bind ( ) 函數(shù)為該套接字分配1 個地址; (3) 使用listen () 函數(shù)建立和客戶機(jī)的連接,告訴套接字開始偵聽客戶機(jī)的連接請求; (4) 由accept ( ) 函數(shù)完成實際的連接,創(chuàng)立連接套接字,原來的偵聽套接字將會繼續(xù)偵聽新的連接請求,而新的連接請求可能會通過accept ( ) 函數(shù)的再調(diào)用而獲得承受; (5) 創(chuàng)立連接套接字成功后,便可完成數(shù)據(jù)的發(fā)送與接收任務(wù),數(shù)據(jù)接收由recv () 函數(shù)完成,發(fā)送由send () 函數(shù)完成。 本系統(tǒng)在主程序中創(chuàng)立2 個關(guān)鍵的線程完成數(shù)據(jù)的傳送任務(wù), 分別為Serialt hread 線程和Ethernet t hread 線程。Serialt hread 線程的功能是將串口接收到的數(shù)據(jù)流通過網(wǎng)口發(fā)送出去, 而Ethernet t hread 線程的功能是將網(wǎng)口發(fā)送過來的數(shù)據(jù)流通過串口發(fā)送出去。基于S3C44B0 的串口服務(wù)器系統(tǒng)主程序流程如圖5 所示。 圖5 基于S3C44B0 的串口服務(wù)器系統(tǒng)主程序流程圖

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論