基于USB的嵌入式CCD圖像數(shù)據(jù)采集系統(tǒng)的實現(xiàn)
CCD圖像數(shù)據(jù)的采集與普通視頻信號的采集相比,其最大的特點是數(shù)據(jù)傳輸速率高,傳輸通道多。
目前,通用的CCD圖像數(shù)據(jù)采集方法是在計算機中插入高速數(shù)據(jù)采集卡,采集卡與CCD相機間通過點對點物理層接口(如RS-422、RS-485)進行數(shù)據(jù)傳輸,高速數(shù)據(jù)采集卡接收到數(shù)據(jù)并通過PCI總線將數(shù)據(jù)寫入計算機內(nèi)存,然后利用采集卡的存儲功能將數(shù)據(jù)通過IDE接口寫入計算機硬盤。這種方法雖然簡單可靠,但對多通道、高速圖像數(shù)據(jù)的采集在數(shù)據(jù)傳輸和存儲方面有一定的局限,容易引起數(shù)據(jù)幀的丟失,并且隨著傳輸通道的增多,引起傳輸導(dǎo)線數(shù)量增加,系統(tǒng)功耗及噪聲也隨之增大。通用串行總線USB能很好地解決這些問題,具有連接方便、無需外接電源、即插即用、支持熱插拔、高帶寬、低功耗、低成本、動態(tài)加載驅(qū)動程序,級聯(lián)星型拓撲結(jié)構(gòu)擴充外設(shè)數(shù)量等特有優(yōu)點,在主機和數(shù)據(jù)采集系統(tǒng)之間可以實現(xiàn)簡單、快捷、雙向、可靠的連接和通訊。
1 硬件設(shè)計
系統(tǒng)設(shè)計應(yīng)具有穩(wěn)定性、靈活性、通用性等特點。穩(wěn)定性是指不僅要保證數(shù)據(jù)的無失真?zhèn)鬏敚乙WC數(shù)據(jù)連續(xù)無丟幀存儲。靈活性體現(xiàn)在系統(tǒng)的信號輸入路數(shù)、系統(tǒng)的存儲容量、磁盤連接方式等具有模塊化與可重組性,系統(tǒng)稍做變通即可用于其他高速視頻圖像的采集。通用性體現(xiàn)在系統(tǒng)能適應(yīng)于多個通道,不同速率的CCD圖像數(shù)據(jù)采集,即要求系統(tǒng)能實現(xiàn)通道合并,并有較寬的數(shù)據(jù)傳輸頻帶。
USB數(shù)據(jù)采集系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示。
傳感器輸出的模擬信號,經(jīng)多路開關(guān)選通接入信號放大器,信號放大器能自動調(diào)整增益的大小,對輸入的信號在A/D轉(zhuǎn)換器的量程內(nèi)進行信號放大,然后由ARM芯片控制進行A/D轉(zhuǎn)換,再將轉(zhuǎn)換后的數(shù)字信號送入嵌入式微控制器,由USB接口電路傳遞給PC機進行數(shù)據(jù)處理,同時將PC機端的客戶應(yīng)用程序發(fā)出的控制信號通過USB接口傳送到以ARM芯片為核心的數(shù)據(jù)采集系統(tǒng)。
1.1 方案選擇
1.1.1 USB接口芯片和主控制器芯片的選擇
USB控制器有兩類,一類是集成了USB接口的單片機,如Cypress公司生產(chǎn)的EZ-USB(基于8051)系列芯片CY7C68013、CY7C64613等;另一類是單獨的USB控制器,如Philips公司的PDIUSBD12、ISP1581,NetChip公司的NET2888,National公司的USBN9603、USBN9604等。前種芯片雖然編程簡單,但需要購置專門的開發(fā)系統(tǒng),投資較大,并且單片機性能有限;后者的特點是價格低廉、連接方便、可靠性高,但其片上不帶CPU,必須選擇微處理器來進行協(xié)議處理和數(shù)據(jù)交換。本系統(tǒng)選擇了片上不帶CPU的性價比較高的USB2.0控制芯片ISP1581,它完全符合USB 2.0規(guī)范,速度可達480Mbps。采用ISP1581可以快速開發(fā)出高性能的USB2.0設(shè)備;同時為了滿足速度要求,主控器芯片選擇了高性能、低功耗的ARM芯片S3C44B0X。
1.1.2 信號放大電路和A/D轉(zhuǎn)換芯片的選擇
在高速數(shù)據(jù)采集系統(tǒng)中,現(xiàn)場輸入信號是變化范圍較大的高頻模擬信號,如果采用單一的增益放大,則放大后的信號幅值有可能超過A/D轉(zhuǎn)換的量程,所以必須根據(jù)信號的變化來相應(yīng)地調(diào)整放大器的增益。本系統(tǒng)選用了AD8321這種頻帶寬、噪聲低、增益可數(shù)控,且十分適合在數(shù)據(jù)采集系統(tǒng)作前置放大用的高頻模擬信號調(diào)理芯片。高頻模擬信號放大后被送到模數(shù)轉(zhuǎn)換器中,S3C44B0X自身雖集成有8路10位ADC,但其內(nèi)部集成的A/D轉(zhuǎn)換只能輸入0~100Hz的模擬信號,且沒有采樣保持電路,因此需要對其進行擴展。為了滿足8路采集,選擇了高速A/D轉(zhuǎn)換芯片AD7829,最大轉(zhuǎn)換速率2MSPS,轉(zhuǎn)換時間為420ns。
1.2 硬件接口電路
本系統(tǒng)硬件接口電路連接如圖2所示。
本系統(tǒng)利用S3C44B0X的PD口為雙向口進行擴展,將AD7829的CONVST與S3C44B0X的PD1相連,用于產(chǎn)生轉(zhuǎn)換脈沖;AD7829的EOC與S3C44B0X的PD0相連,用于產(chǎn)生轉(zhuǎn)換結(jié)束信號。采集信號經(jīng)A/D轉(zhuǎn)換后,數(shù)據(jù)先存放在S3C44B0X的寄存器里, S3C44B0X先發(fā)控制信號再發(fā)數(shù)據(jù)給ISP1581,在此將ISP1581的緩沖區(qū)定義為8個,分別寫入8路轉(zhuǎn)換后的數(shù)據(jù)。而PC機通過USB接口與ISP1581連接,ISP1581負責(zé)分類和解釋PC機發(fā)來的信號,具體操作流程如下:PC機發(fā)送給USB設(shè)備的數(shù)據(jù)以包的形式寫入ISP1581的緩存中,當(dāng)緩存被寫滿或數(shù)據(jù)發(fā)送完畢后,ISP1581就給ARM發(fā)中斷信號,ARM響應(yīng)中斷信號進入中斷服務(wù)程序執(zhí)行相應(yīng)的包處理。另一方面,USB設(shè)備不能主動向主機發(fā)送數(shù)據(jù),只有當(dāng)PC機要求USB設(shè)備發(fā)送數(shù)據(jù)時,ARM才將主機需要的數(shù)據(jù)寫入ISP1581相應(yīng)端點的緩存中。
2 軟件設(shè)計
2.1 數(shù)據(jù)采集部分
數(shù)據(jù)采集是由S3C44B0X的PD口發(fā)出脈沖作為AD7829的轉(zhuǎn)換脈沖CONVST,當(dāng)AD7829轉(zhuǎn)換結(jié)束時,EOC輸出有效低電平,S3C44B0X接到有效電平后,發(fā)下一路地址,然后讀數(shù)據(jù)。當(dāng)AD7829的和信號有效時,在數(shù)據(jù)讀入S3C44B0X的數(shù)據(jù)緩沖區(qū)的同時將下一路的地址打入,這樣循環(huán)采集8路模擬輸入,直到數(shù)據(jù)采集結(jié)束,本過程的流程圖如圖3所示。
2.2 USB部分軟件設(shè)計
USB系統(tǒng)軟件由固件程序、USB系統(tǒng)驅(qū)動程序和應(yīng)用程序三部分構(gòu)成。
2.2.1 固件程序的開發(fā)
固件程序?qū)嶋H上是置于微控制器內(nèi)部的程序文件,用來輔助硬件完成通信任務(wù)。通過ISP1581的INT中斷信號與微控制器S3C44B0X的EINT0中斷口相連,當(dāng)接收數(shù)據(jù)或發(fā)送數(shù)據(jù)成功時就會產(chǎn)生中斷,固件程序的任務(wù)就是對這些中斷進行響應(yīng),完成設(shè)備的配置,讓USB驅(qū)動程序知道設(shè)備的能力,接收USB主控制器發(fā)來的數(shù)據(jù)和向主機發(fā)送數(shù)據(jù)。設(shè)備固件程序是設(shè)備運行的核心,本系統(tǒng)采用Keil C進行編寫。SP1581的固件程序采用模塊化設(shè)計,包括主循環(huán)程序、中斷服務(wù)程序、USB標(biāo)準(zhǔn)請求處理和批量數(shù)據(jù)傳送請求處理四部分。固件模塊結(jié)構(gòu)見圖4。
2.2.2 應(yīng)用程序
應(yīng)用程序包括Win32DLL程序和用戶應(yīng)用程序。Win32動態(tài)連接庫包含共享函數(shù)庫的二進制文件,可以被多個應(yīng)用程序同時使用??蛻魬?yīng)用程序則是實現(xiàn)數(shù)據(jù)采集系統(tǒng)功能的軟件程序,在本系統(tǒng)中采用Visual C++進行編寫。
2.2.3 USB系統(tǒng)驅(qū)動程序
USB系統(tǒng)驅(qū)動程序采用分層結(jié)構(gòu)模型(WDM),該模型定義了分層的驅(qū)動程序, USB設(shè)備驅(qū)動程序不直接與硬件對話,而是通過USB驅(qū)動程序接口將USB請求塊提交到總線驅(qū)動程序進而完成硬件操作。從系統(tǒng)的角度來說,在USB設(shè)備插入主機后,主機檢測到USB設(shè)備,讀取設(shè)備描述符,然后主機根據(jù)設(shè)備描述符中提供的廠商ID和產(chǎn)品ID等,啟用相應(yīng)USB設(shè)備驅(qū)動程序,讀取USB設(shè)備中的配置描述符、接口描述符和端點描述符,根據(jù)需要選擇恰當(dāng)?shù)呐渲?、接口和端點,確定傳輸方式。這一過程完成后,PC機與USB設(shè)備之間就能夠進行數(shù)據(jù)傳輸了。
USB總線的特點使其非常適合用作小型儀器與主機之間的通訊接口,實現(xiàn)主機與便攜式儀器之間的簡單、快速和可靠的連接。將USB接口應(yīng)用到數(shù)據(jù)采集系統(tǒng)中,提高了數(shù)據(jù)采集系統(tǒng)的速度,增強了系統(tǒng)的抗干擾能力和數(shù)據(jù)傳輸?shù)目煽啃?。本文詳細介紹了基于ARM芯片S3C44B0X和USB2.0接口控制芯片ISP1581的數(shù)據(jù)采集系統(tǒng)的軟硬件設(shè)計開發(fā)方案,設(shè)計開發(fā)過程較為繁雜,涉及到多方面的軟件程序與硬件電路的聯(lián)合使用,通過實驗測試,效果良好。
參考文獻
[1] 羅浩,楊曉非.脫機式數(shù)據(jù)采集系統(tǒng)的設(shè)計[J]. 微計算機信息,2006,22(4):93-95.
[2] 高美珍,洪家平. 基于USB接口和嵌入式芯片總線的數(shù)據(jù)采集系統(tǒng)[J]. 儀表技術(shù)與傳感器,2005,(8):51-53.
[3] 邢微,劉開華.數(shù)據(jù)采集系統(tǒng)USB2.0接口設(shè)計[J].電子測量技術(shù),2006,29(1):12-13.
[4] 夏益民,王廣君. 基于USB總線的高速數(shù)據(jù)采集系統(tǒng)[J]. 國外電子元器件,2003,(10):20-23.