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