摘 要:介紹了采用嵌入式微機(jī)SC-12和USB接口芯片F(xiàn)T245BM 的智能控制終端,它具有3種靈活的數(shù)據(jù)接口方式:以太網(wǎng)、USB和RS485串行口。通過以太 網(wǎng)連接可以實(shí)現(xiàn)靈活的遠(yuǎn)程數(shù)據(jù)獲取與控制;通過USB串口總線,可以方便地進(jìn)行現(xiàn)場數(shù)據(jù) 的存取和設(shè)備的調(diào)試;而通過RS485總線可以使得一個(gè)嵌入式微機(jī)SC-12與40個(gè)掛接在總線 上的控制模塊進(jìn)行通訊。
關(guān)鍵詞:嵌入式微機(jī) FT245BM芯片 RS485總線 并行I/O 通訊協(xié)議
0引言
HIRFL—CSR(蘭州重離子冷卻儲(chǔ)存環(huán))是國家級(jí)重點(diǎn)實(shí)驗(yàn)室。CSR控制系統(tǒng)是保證CSR正常運(yùn)行的重要環(huán)節(jié)。該控制系統(tǒng)是由多個(gè)子系統(tǒng)分別組成的。在CSR新的控制方案中,允許用戶通過TCP/IP協(xié)議來訪問遠(yuǎn)程控制設(shè)備和獲知設(shè)備的當(dāng)前運(yùn)行情況。為此,設(shè)計(jì)并采用嵌入式微機(jī)控制終端,使其能通過Intran et網(wǎng)絡(luò)與控制室中的客戶機(jī)進(jìn)行遠(yuǎn)程通訊,同時(shí)也可以將接收到的遠(yuǎn)程控制命令,傳送到掛接RS485總線上的多個(gè)控制子模塊,反之也可以順利通訊。采用USB控制芯片F(xiàn)T245BM進(jìn)行串口USB和并行I/O口之間的協(xié)議轉(zhuǎn)換,使得工作人員在現(xiàn)場通過運(yùn)行USB客戶程序來對(duì)嵌入式微機(jī)進(jìn)行現(xiàn)場數(shù)據(jù)采集和調(diào)試,并有利于從局部到整體調(diào)試安裝,逐步完成整個(gè)大控制系統(tǒng)的構(gòu)建。
1芯片的選擇
(1)控制模塊采用的嵌入式微機(jī)是德國Beck IPC公司生產(chǎn)的SC-12。如圖1所示,它的內(nèi)核采用固化了DOS系統(tǒng)的80186芯片,其資源如下:
·8018620 MHz16位CPU;
·支持TCP/IP的實(shí)時(shí)DOS操作系統(tǒng);
·512KB的用戶RAM和512KB的Flash Disk(其中256KB用于操作系統(tǒng));
·6×256 byte I/O空間;
·14根程序可編的雙向引腳(32腳的雙列直插封裝);
·電源功耗350 mA(典型);
·可擴(kuò)充2GB的外接硬盤;
·兩個(gè)標(biāo)準(zhǔn)串行接口(用于初始設(shè)置);
·一個(gè)雙絞線以太網(wǎng)接口(10/100BaseT 提供FTP,Telnet,HTTP服務(wù)連接);
·兩路定時(shí)器輸出和兩路定時(shí)器輸入;
·掉電保護(hù)機(jī)制;
·一個(gè)編程串口。
(2)FT245BM芯片功能簡介
在USB的開發(fā)中,要求設(shè)計(jì)人員對(duì)USB的標(biāo)準(zhǔn)、Firmware(固件)編程及驅(qū)動(dòng)程序的編寫等有較深入的了解;而基于FT245BM芯片的USB產(chǎn)品開發(fā),能夠使研發(fā)人員在最短的周期內(nèi)開發(fā)出相應(yīng)的USB產(chǎn)品。FT245BM芯片功能框圖如圖2所示,相關(guān)資源如下。
·兩個(gè)FIFO數(shù)據(jù)緩沖區(qū),128 byte的接收緩沖區(qū)和384 byte的發(fā)送緩沖區(qū);
·接收和發(fā)送數(shù)據(jù)速度最高可達(dá)1M b/s;
·USB收發(fā)器提供USB1.1/2.0的全速物理接口到USB總線,支持UHCI/OHCI主控制器;
·串行接口引擎(SIE)主要用于完成USB數(shù)據(jù)的串/并雙向轉(zhuǎn)換;
·USB協(xié)議引擎管理來自USB設(shè)備控制端口的數(shù)據(jù)流;
·FIFO控制器處理外部接口和收發(fā)緩沖區(qū)間的數(shù)據(jù)轉(zhuǎn)換;
·通過8根數(shù)據(jù)線D0~D7及讀寫控制線來完成和單片機(jī)的數(shù)據(jù)交互;
·內(nèi)置3.3 V的穩(wěn)壓器,6 MHz的振蕩器、8倍頻的時(shí)鐘倍頻器、USB鎖相環(huán)和EEPROM接口;
·采用32腳的PQFP封裝,體積小巧。
FT245BM的主要功能是進(jìn)行USB和并行I/O口之間的協(xié)議轉(zhuǎn)換。芯片一方面可從主機(jī)接收USB數(shù)據(jù),并將其轉(zhuǎn)換為并行I/O口的數(shù)據(jù)流格式發(fā)送給外設(shè);另一方面外設(shè)可通過并行I/O口將數(shù)據(jù)轉(zhuǎn)換為USB的數(shù)據(jù)格式傳回主機(jī)。中間的轉(zhuǎn)換工作全部由芯片自動(dòng)完成,開發(fā)者無須考慮固件的設(shè)計(jì)。
2系統(tǒng)結(jié)構(gòu)
如圖3所示,該電路為了適應(yīng)各種不同場合的應(yīng)用,提供了3種接口:USB、RS 485串行口和10Mb以太網(wǎng)接口。作為局部控制系統(tǒng)中的上位控制總機(jī),它提供了完整的總線控制和遠(yuǎn)程通訊的功能。
3軟件編程
3.1基于TCP/IP協(xié)議(流套接字)的Socket編程
控制系統(tǒng)利用Intranet來實(shí)現(xiàn)現(xiàn)場設(shè)備的遠(yuǎn)程監(jiān)控和訪問,WinSock通常是被稱為“套接字”的通訊對(duì)象,它可使不同的應(yīng)用程序跨網(wǎng)通訊。服務(wù)器一般有重復(fù)和并發(fā)兩種,前者用于面向短時(shí)間能處理完的請(qǐng)求,由服務(wù)器自行處理,主要用于無連接的Socket編程模式,一般面向事務(wù)處理,一個(gè)請(qǐng)求一個(gè)應(yīng)答就能解決問題。而后者則處理時(shí)間不定的請(qǐng)求。在控制系統(tǒng)中,要不定時(shí)的監(jiān)測和控制現(xiàn)場設(shè)備,采用面向連接的Socket編程模式完成服務(wù) 器(SC-12)與客戶機(jī)之間的通訊。對(duì)于SC-12微機(jī),它提供了通過利用Borland C++5.02開發(fā)環(huán)境和Beck IPC公司提供的軟件調(diào)試環(huán)境,很方便的進(jìn)行服務(wù)器端的Socket編程。而對(duì)于客戶端的用戶界面,可用Visual C++6.0開發(fā)環(huán)境,通過WinSock API來編寫網(wǎng)絡(luò)通信的客戶端程序。
3.2USB客戶應(yīng)用程序
當(dāng)FT245BM的USB接口連接到主機(jī)后,必須在PC機(jī)上安裝一個(gè)由FTDI公司免費(fèi)提供的 虛擬串行口VCP(Virtual COM Port)驅(qū)動(dòng)程序。該驅(qū)動(dòng)程序兼容Windows 98/98 SE、Window s 2000/ME/XP等不同版本。用戶可以在這虛擬串口上進(jìn)行應(yīng)用程序的開發(fā)。該虛擬串口可 以象一個(gè)標(biāo)準(zhǔn)的物理串口那樣被訪問,可本質(zhì)上所有針對(duì)虛擬串口的數(shù)據(jù)通信都是通過USB總線完成的,在設(shè)備端則通過并行I/O口完成。
在PC端,應(yīng)用VC對(duì)虛擬串口(通常為COM3)進(jìn)行應(yīng)用編程。采用Visual C++6.0環(huán)境自帶的串口通訊控件Microsoft Communications Control(Version60)進(jìn)行編程。通訊控 件的工作原理類似于中斷方式,當(dāng)有通訊事件發(fā)生時(shí)(如發(fā)送、接收數(shù)據(jù)),就會(huì)觸發(fā)OnComm事件。在OnComm事件的處理函數(shù)中調(diào)用GetCommEvent()函數(shù),由該函數(shù)的返回值即可確定是什么類型的事件,并由此做出相應(yīng)的處理,在串口通訊程序中只需設(shè)置和監(jiān)視MSComm控件的屬性和事件便可。通過串口通訊控件,用戶就可以輕松編寫自己的應(yīng)用程序。
4結(jié)語
由于采用了嵌入式微機(jī)并外擴(kuò)FT245BM的USB芯片,可以很容易的使得控制系統(tǒng)中的網(wǎng)絡(luò)節(jié)點(diǎn)智能化,并有利于通過用戶軟件開發(fā)升級(jí)控制系統(tǒng)和拓寬控制網(wǎng)絡(luò);同時(shí)FT 245BM的USB芯片,為硬件編程(修改硬件)和USB客戶應(yīng)用程序的開發(fā)提供了很大便利。