摘 要:以S3C44B0X為主控制器,將高頻模擬信號經(jīng)AD8321前置放大和增益調(diào)整后通過AD7829進行模數(shù)轉(zhuǎn)換,,完成CCD圖像數(shù)據(jù)采集,,并通過USB2.0接口芯片ISP1581實現(xiàn)與PC機的快速數(shù)據(jù)傳輸。實現(xiàn)了CCD信號快速而準確的采集及實時處理,。
關(guān)鍵詞:嵌入式系統(tǒng)? CCD? USB? S3C44B0X? ISP1581
?
??? 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ù)幀的丟失,,并且隨著傳輸通道的增多,引起傳輸導線數(shù)量增加,,系統(tǒng)功耗及噪聲也隨之增大,。通用串行總線USB能很好地解決這些問題,具有連接方便,、無需外接電源,、即插即用、支持熱插拔,、高帶寬,、低功耗,、低成本、動態(tài)加載驅(qū)動程序,,級聯(lián)星型拓撲結(jié)構(gòu)擴充外設(shè)數(shù)量等特有優(yōu)點,,在主機和數(shù)據(jù)采集系統(tǒng)" title="數(shù)據(jù)采集系統(tǒng)">數(shù)據(jù)采集系統(tǒng)之間可以實現(xiàn)簡單、快捷,、雙向,、可靠的連接和通訊。
1 硬件設(shè)計
系統(tǒng)設(shè)計應具有穩(wěn)定性,、靈活性,、通用性等特點。穩(wěn)定性是指不僅要保證數(shù)據(jù)的無失真?zhèn)鬏?,而且要保證數(shù)據(jù)連續(xù)無丟幀存儲,。靈活性體現(xiàn)在系統(tǒng)的信號輸入路數(shù)、系統(tǒng)的存儲容量,、磁盤連接方式等具有模塊化與可重組性,,系統(tǒng)稍做變通即可用于其他高速視頻圖像的采集。通用性體現(xiàn)在系統(tǒ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" title="A/D">A/D轉(zhuǎn)換器的量程內(nèi)進行信號放大,,然后由ARM芯片控制進行A/D轉(zhuǎn)換,,再將轉(zhuǎn)換后的數(shù)字信號送入嵌入式微控制器,由USB接口電路傳遞給PC機進行數(shù)據(jù)處理,,同時將PC機端的客戶應用程序" title="應用程序">應用程序發(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ù)信號的變化來相應地調(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負責分類和解釋PC機發(fā)來的信號,具體操作流程如下:PC機發(fā)送給USB設(shè)備的數(shù)據(jù)以包的形式寫入ISP1581的緩存中,,當緩存被寫滿或數(shù)據(jù)發(fā)送完畢后,,ISP1581就給ARM發(fā)中斷信號,ARM響應中斷信號進入中斷服務程序執(zhí)行相應的包處理,。另一方面,,USB設(shè)備不能主動向主機發(fā)送數(shù)據(jù),只有當PC機要求USB設(shè)備發(fā)送數(shù)據(jù)時,,ARM才將主機需要的數(shù)據(jù)寫入ISP1581相應端點的緩存中,。
2 軟件設(shè)計
2.1 數(shù)據(jù)采集部分
數(shù)據(jù)采集是由S3C44B0X的PD口發(fā)出脈沖作為AD7829的轉(zhuǎn)換脈沖CONVST,當AD7829轉(zhuǎn)換結(jié)束時,,EOC輸出有效低電平,,S3C44B0X接到有效電平后,發(fā)下一路地址,,然后讀數(shù)據(jù),。當AD7829的和信號有效時,在數(shù)據(jù)讀入S3C44B0X的數(shù)據(jù)緩沖區(qū)的同時將下一路的地址打入,,這樣循環(huán)采集8路模擬輸入,,直到數(shù)據(jù)采集結(jié)束,本過程的流程圖如圖3所示,。
?
2.2 USB部分軟件設(shè)計
USB系統(tǒng)軟件由固件程序" title="固件程序">固件程序,、USB系統(tǒng)驅(qū)動程序和應用程序三部分構(gòu)成,。
2.2.1 固件程序的開發(fā)
固件程序?qū)嶋H上是置于微控制器內(nèi)部的程序文件,,用來輔助硬件完成通信任務。通過ISP1581的INT中斷信號與微控制器S3C44B0X的EINT0中斷口相連,,當接收數(shù)據(jù)或發(fā)送數(shù)據(jù)成功時就會產(chǎn)生中斷,,固件程序的任務就是對這些中斷進行響應,完成設(shè)備的配置,,讓USB驅(qū)動程序知道設(shè)備的能力,,接收USB主控制器發(fā)來的數(shù)據(jù)和向主機發(fā)送數(shù)據(jù)。設(shè)備固件程序是設(shè)備運行的核心,本系統(tǒng)采用Keil C進行編寫,。SP1581的固件程序采用模塊化設(shè)計,,包括主循環(huán)程序、中斷服務程序,、USB標準請求處理和批量數(shù)據(jù)傳送請求處理四部分,。固件模塊結(jié)構(gòu)見圖4。
?
2.2.2 應用程序
??? 應用程序包括Win32DLL程序和用戶應用程序,。Win32動態(tài)連接庫包含共享函數(shù)庫的二進制文件,,可以被多個應用程序同時使用??蛻魬贸绦騽t是實現(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è)備描述符" title="描述符">描述符,,然后主機根據(jù)設(shè)備描述符中提供的廠商ID和產(chǎn)品ID等,啟用相應USB設(shè)備驅(qū)動程序,,讀取USB設(shè)備中的配置描述符,、接口描述符和端點描述符,根據(jù)需要選擇恰當?shù)呐渲?、接口和端點,,確定傳輸方式。這一過程完成后,,PC機與USB設(shè)備之間就能夠進行數(shù)據(jù)傳輸了,。
??? USB總線的特點使其非常適合用作小型儀器與主機之間的通訊接口,實現(xiàn)主機與便攜式儀器之間的簡單,、快速和可靠的連接,。將USB接口應用到數(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.