技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > PC104串口通信在工程中的應(yīng)用

PC104串口通信在工程中的應(yīng)用

時間:2008-03-20 15:03:00來源:mahaiyan

導(dǎo)語:?本文結(jié)合光電計時儀實例,介紹了PC104串口通信原理及其在工程中的實踐應(yīng)用。本文同時提出了一種簡單、有效的串口通信方式,并簡要說明了相關(guān)的通信軟件的設(shè)計。
摘要:本文結(jié)合光電計時儀實例,介紹了PC104串口通信原理及其在工程中的實踐應(yīng)用。本文同時提出了一種簡單、有效的串口通信方式,并簡要說明了相關(guān)的通信軟件的設(shè)計。 關(guān)鍵詞:PC104 ; 串口通信;光電計時儀 SOC 引言: 目前最為先進(jìn)的嵌入式工業(yè)計算機PCl04,以其優(yōu)良的品質(zhì)、高可靠性及模塊化的特點,而被廣泛應(yīng)用于工業(yè)控制、航空航天、軍事、醫(yī)療、智能儀器儀表等領(lǐng)域。PC104中的MSM486SV模塊是一個基于PC/104而成的高可靠性、高集成度的ALL-IN-ONE CPU模塊;它在PC/104的標(biāo)準(zhǔn)尺寸上集成了計算機的所有功能(包括SVGA和LCD接口);板上除了包含標(biāo)準(zhǔn)PC的一般接口,還為適應(yīng)嵌入式的應(yīng)用,而對MSM486SV單板進(jìn)行一系列附加特性設(shè)計,使得板上功能更為完善。 光電計時儀是我們研制的一種適用于惡劣環(huán)境下測量某一時刻及測量時間間隔的專用設(shè)備,由于PC104中的MSM486SV模塊的優(yōu)越性能,我們選用其作為光電計時儀的控制計算機。在實際運行中為實現(xiàn)上位PC機與PC104之間進(jìn)行數(shù)據(jù)交換,我們采用串行通信的通信方式。串行通信具有使用方便、傳輸可靠、信號線數(shù)量少等優(yōu)點,因而它在傳輸數(shù)據(jù)量不大、要求速度不高而傳輸距離較遠(yuǎn)的通信場合得到廣泛的應(yīng)用。本文結(jié)合光電計時儀實例,介紹了PC104串口通信在工程中的應(yīng)用。 1. 串口通信的基本原理 串行端口的基本功能是實現(xiàn)CPU和串行設(shè)備間的編碼轉(zhuǎn)換,當(dāng)數(shù)據(jù)從CPU經(jīng)過串行端口發(fā)送出去時,字節(jié)數(shù)據(jù)轉(zhuǎn)換為串行的位;在接收數(shù)據(jù)時,串行的位被轉(zhuǎn)換為字節(jié)數(shù)據(jù)。PC系列及其兼容機為了實現(xiàn)串行通訊,都配置了一個大規(guī)模集成通訊組件————-通用異步接收發(fā)送器(簡稱UART);UART 有一系列的內(nèi)部寄存器,通過這些內(nèi)部寄存器操作來實現(xiàn)通訊功能。 對于可編程的異步串行通信芯片UART,我們可根據(jù)協(xié)議的要求對其進(jìn)行初始化。初始化后,當(dāng)要發(fā)送一個數(shù)據(jù)字符時,如果UART發(fā)送保持寄存器為空,可用CPU的輸入輸出指令把該數(shù)據(jù)輸出到UART的發(fā)送保持寄存器。UART按初始化時設(shè)置的要求,把相應(yīng)的起始位,奇偶位和停止位加到來自CPU的8位數(shù)據(jù)上,然后按設(shè)置的波特率把這個二進(jìn)制位串發(fā)送到串行通信線上;同樣UART能自動從通信線上接收串行數(shù)據(jù),并取出有效的數(shù)據(jù)位,然后轉(zhuǎn)換成數(shù)據(jù)字符存入接收數(shù)據(jù)寄存器。 2. 利用串口實現(xiàn)遠(yuǎn)程控制 在儀表、工控領(lǐng)域,采用嵌入式PC是自動化設(shè)備和測量裝置開發(fā)的一個方向。嵌入式PC裝置安裝在設(shè)備中,一般安裝很少的外設(shè)甚至不需安裝鍵盤、顯示器、軟驅(qū)等外設(shè);當(dāng)需要更新、交換其中的應(yīng)用程序和數(shù)據(jù)文件時,常規(guī)方法是將嵌入式PC從設(shè)備上拆下來,再利用外掛鍵盤、顯示器和軟驅(qū)來進(jìn)行文件管理,實際操作起來十分不便。注意到嵌入式PC上一般帶有串口、并口和USB口等通訊接口,我們可以利用上述通訊接口外接一臺普通的PC機,采用客戶機/服務(wù)器模式和仿真終端來進(jìn)行嵌入式PC裝置的文件更新和管理?;谶@種想法,本文論述了在某型光電計時儀的設(shè)計中利用串口來實現(xiàn)遠(yuǎn)程連接/調(diào)試功能的兩種方法,一種是將PC機的外設(shè)定向為嵌入式PC104的外設(shè),另一種是將嵌入式PC104的物理驅(qū)動器鏡像為PC機的驅(qū)動器,具體方法如下: 方法1:仿真終端模式 MSM486SV模塊在系統(tǒng)BIOS中特別安裝了512K 的“遠(yuǎn)程連接/調(diào)試”擴展。我們可以重新定向"顯示""鍵盤""硬盤"或"軟驅(qū)"。這樣,當(dāng)我們將MSM486SV通過串行口與一臺計算機(HOST)相連后(如圖1),即使MSM486SV上沒有連接任何外設(shè),我們?nèi)匀豢梢詫SM486SV進(jìn)行操作。首先我們在HOST上運行"REMHOST.EXE"實用程序,然后我們對指定的"HOST"的外設(shè)重新定向,這樣"HOST"上的"鍵盤""顯示器"或"軟驅(qū)"就變成了MSM486SV的外設(shè),接下來,我們就可以對MSM486SV進(jìn)行調(diào)試或程序更新了。這一點對那些“黑”模式的現(xiàn)場嵌入式應(yīng)用有特殊意義——————我們只要一臺“筆記本"作為HOST即可。
方法2:驅(qū)動器鏡像模式 應(yīng)用DOS6.22的intersever功能來實現(xiàn)遠(yuǎn)程連接/調(diào)試。 PC104作為服務(wù)器,PC機作為客戶端。 步驟如下: 1. 將PC104通過串行口與PC機相連(如圖1); 2. 兩臺計算機均在DOS同一版本下啟動; 3.在服務(wù)器端:在AutoExec中啟動intersve.exe; 4. 在客戶端:啟動interlink.exe; 5. 如果聯(lián)機正確,Dos操作系統(tǒng)自動將sever(服務(wù)器)中的物理驅(qū)動器鏡像到客戶端,比如服務(wù)器中的C盤,被映射到客戶端的G盤,這時在客戶端操作G盤就是對服務(wù)器的C盤進(jìn)行操作。 在應(yīng)用中,PC104如果沒有任何外設(shè),但卻需要現(xiàn)場操作調(diào)試,方法1無疑是最佳選擇。 在我們研制的光電計時儀中,PC104接有矩陣鍵盤和顯示屏,沒有安裝軟驅(qū)。平時PC104單獨進(jìn)行工作控制,當(dāng)我們需要改寫模擬電子硬盤上用戶程序時,我們可以利用串口來實現(xiàn)。在此情況下,上述兩種方法都可以使用。但第二種方法就相對簡單一些,它不用設(shè)置BIOS和裝載REMHOST.EXE,只需要一張DOS最小系統(tǒng)的啟動盤即可。 3.利用串口傳送文件 光電計時儀在完成測量工作后,需要及時地將測量結(jié)果上傳到上位機,以便進(jìn)行實時處理和判斷。在測量文件比較?。?K左右)、傳輸距離短的情況下,串口通信是最佳的傳輸方式,我們在測量程序中設(shè)計了一種簡單的文件發(fā)送程序來實現(xiàn)這種功能。我們將主控室的計算機作為上位機接收文件,將系統(tǒng)的PC104計算機作為下位機發(fā)送文件,采用雙向通信方式;串行通訊的波特率為4800BPS、8位數(shù)據(jù)位、1個停止位,采用奇校驗的方法。 3.1 下位機(PC104)文件發(fā)送的軟件程序設(shè)計 軟件程序設(shè)計采用C語言,運行環(huán)境為DOS6.22平臺系統(tǒng),它的可讀性好,并且能夠方便可行的移植到其他平臺。 在DOS系統(tǒng)下有好多種的串口編程方法,結(jié)合實際,我們采用直接讀寫UART內(nèi)部寄存器的方法,通過使用C語言提供的基本輸入輸出函數(shù)inportb (),outportb ()實現(xiàn)了PC104模塊的異步串行通信。對于串口連接,我們采用了最簡單的三線制連法。對于無硬件握手信號的處理,我們采用了一種比較簡單的方法進(jìn)行軟件握手,即在發(fā)送一組數(shù)據(jù)字符前,先發(fā)送一個聯(lián)絡(luò)信號(約定字符),然后等待對方的應(yīng)答信號,在收到對方的應(yīng)答信號后,就認(rèn)為對方在最近一段時間內(nèi)是準(zhǔn)備好的;在此之后的發(fā)送就總是認(rèn)為對方是準(zhǔn)備好的。這種方法簡單可行,缺點是波特率不能設(shè)置過高:因為必須確保對方能及時的處理掉發(fā)送出去的字符。但是對我們只有1K左右文件的傳輸,即使在波特率為4800時,也不會耗時很長。程序流程如圖2所示。
3.2 上位機(PC機)接收的軟件程序設(shè)計 上位PC機工作在Windows下,我們采用Visual C++6.0語言編程。在Windows下用Visual C++ 6.0開發(fā)串行通信程序時主要有兩種方法:① 利用Visual C++ 6.0提供的MSComm控件來編程;② 利用專門的Windows的SDK提供的API函數(shù)來編程。利用MSComm控件實現(xiàn)串口通信的編程方法原理上比較簡單,容易實現(xiàn),但編程的靈活性較差,傳輸速率受到限制;利用API函數(shù)實現(xiàn)串口通信的編程方法功能強大,靈活性好,但原理比較復(fù)雜,需要編程人員對硬件的工作原理有深入的了解。實際應(yīng)用時為了滿足大容量數(shù)據(jù)傳輸?shù)男枰约霸黾酉到y(tǒng)的靈活性,我們采用第二種方法。程序流程圖如圖3所示。
在32位的Windows系統(tǒng)中,串口和其他通信設(shè)備是作為文件處理的。串口的打開、關(guān)閉,讀取和寫入所用的函數(shù)與操作文件的函數(shù)完全一致。這方面的文獻(xiàn)和教材很多,在這里我們就不再敘述。 4 串口的硬件設(shè)計 目前較為常用的串口有9針串口(DB9)和25針串口(DB25),當(dāng)通信距離較近時(<12m),適合采用電纜線直接連接標(biāo)準(zhǔn)RS232端口。若距離較遠(yuǎn),則需附加調(diào)制解調(diào)器(MODEM)。最為簡單且常用的是采用3線制RXD、TXD、GND軟握手的零MODEM 方式,即將PC機和PC104的發(fā)送數(shù)據(jù)線TXD與接收數(shù)據(jù)RXD交叉連接,二者的地線GND直接相連(如圖4所示),采用軟件握手方式 ,其它信號線(如握手信號線)均不使用。這樣既可以實現(xiàn)預(yù)定的任務(wù),又可以簡化電路設(shè)計、節(jié)約成本。
結(jié)束語:本文較全面介紹了PC104的串口通信原理在光電計時儀中的應(yīng)用,主要闡述了利用串口進(jìn)行文件發(fā)送的程序設(shè)計的方法。光電計時儀的運行實踐證明了利用串口改寫模擬電子盤上的用戶程序的方法方便可行;同時表明用本文中提及的串口程序來傳送文件方法簡單、效果穩(wěn)定。這種方法也可以廣泛應(yīng)用在其它傳輸文件小、波特率要求不高的場合。

標(biāo)簽:

點贊

分享到:

上一篇:高壓斬波內(nèi)饋調(diào)速技術(shù)在大連...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號