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