引 言
聚合酶鏈反應(yīng)(Polymerase Chain Reaction,PCR)是20世紀(jì)80年代中期發(fā)展起來的體外核酸擴(kuò)增技術(shù)。該技術(shù)是分子生物學(xué)發(fā)展史上的一個(gè)里程碑,它使得DNA分子可以在生物體外進(jìn)行放大擴(kuò)增。在短短的數(shù)年內(nèi),這項(xiàng)技術(shù)已廣泛應(yīng)用于生命科學(xué)的研究中,對(duì)基因克隆、DNA序列分析等現(xiàn)代分子生物學(xué)技術(shù)的發(fā)展起到了重要的作用。我國目前使用的PCR儀主要依賴于進(jìn)口,為了在該技術(shù)領(lǐng)域追趕國際先進(jìn)水平,與海爾集團(tuán)聯(lián)合對(duì)PCR儀進(jìn)行了開發(fā)研究。
隨著U盤的普遍使用和USB技術(shù)的嵌入式系統(tǒng)應(yīng)用,方便用戶進(jìn)行程序修改和程序的存儲(chǔ),PCR設(shè)計(jì)中采用可以熱插拔的USB接口,即在PCR硬件系統(tǒng)中加入了USB主控芯片,使其能夠?qū)盤等存儲(chǔ)設(shè)備進(jìn)行讀寫操作,從而實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和轉(zhuǎn)移。
1 USB系統(tǒng)的硬件設(shè)計(jì)
在數(shù)據(jù)采集系統(tǒng)中,USB的應(yīng)用大體可以采用兩種方案:一是直接采用集成USB設(shè)備接口的嵌入式微控制器;二是采用單獨(dú)的控制器和獨(dú)立的USB設(shè)備接口芯片。
為增強(qiáng)系統(tǒng)應(yīng)用的靈活性,該方案采用瑞薩單片機(jī)M30627FJPGP,加上USB設(shè)備接口芯片搭建硬件系統(tǒng),具有低成本、易移植的特點(diǎn)。設(shè)計(jì)中,USB 設(shè)備接口芯片采用CH375,涉及框圖如圖1所示。CH375是一款符合USB 2.0協(xié)議的USB總線通用接口芯片,支持主機(jī)(HOST)方式和設(shè)備(SLAVE)方式,并可以動(dòng)態(tài)地切換主機(jī)和設(shè)備方式。
?
CH375芯片提供了通用的被動(dòng)并行接口,包括:8位雙向數(shù)據(jù)總線D0~D7、讀選通輸入引腳RD、寫選通輸入引腳WR、片選輸入引腳CS、中斷輸出引腳 INT以及地址輸入引腳A0。CH375以總線方式掛接在單片機(jī)數(shù)據(jù)總線上,并且與多個(gè)外圍器件共存。單片機(jī)通過RD,WR高位地址譯碼產(chǎn)生片選CS和地址線P68(接CH375的A0引腳)的綜合控制,完成與CH375的通信。外擴(kuò)USB電路如圖2所示。
?
?
CH375芯片的RD和WR分別連接到單片機(jī)的讀選通輸出引腳和寫選通輸出引腳。CS由單片機(jī)的CS4選通。INT輸出的中斷請(qǐng)求是低電平有效,可以連接到單片機(jī)的外部中斷上,單片機(jī)使用中斷方式獲知中斷請(qǐng)求。
當(dāng)CS375(即CS)為低電平時(shí),單片機(jī)可以與CH375進(jìn)行通信操作。此時(shí),當(dāng)WR為高電平,RD和P68都為低電平時(shí),CH375中的數(shù)據(jù)通過 D0~D7輸出;當(dāng)RD為高電平且CS和WR及P68都為低電平時(shí),D7~D0上的數(shù)據(jù)被寫入CH375芯片中;當(dāng)RD為高電平且CS和WR都為低電平而 A0為高電平時(shí),D7~D0上的數(shù)據(jù)被作為命令碼寫入CH375芯片中。
CH375芯片的UD+和UD-引腳直接連接到USB總線上。CH375芯片內(nèi)置了電源上電復(fù)位電路,并可以產(chǎn)生復(fù)位信號(hào)。為確保上電復(fù)位次序,系統(tǒng)設(shè)計(jì)中,單片機(jī)的復(fù)位信號(hào)是通過CH375產(chǎn)生的,并將單片機(jī)與CH375共同接到外部復(fù)位電路上。
CH375芯片正常工作時(shí)需要外部為其提供12 MHz的時(shí)鐘信號(hào),在XI和XO引腳之間連接一個(gè)標(biāo)稱頻率為12 MHz的晶體,并且分別為XI和XO引腳對(duì)地連接一個(gè)容量為30 pF的高頻振蕩電容。
CH375芯片支持5 V電源電壓或者3.3 V電源電壓。該系統(tǒng)使用5 V工作電壓,并且V3引腳處外接容量為O.01 μF的電源退耦電容。
2 USB系統(tǒng)的軟件設(shè)計(jì)
根據(jù)USB 2.O協(xié)議,在一個(gè)USB系統(tǒng)中,任何一次通信都是由USB主機(jī)發(fā)起的。USB設(shè)備根據(jù)主機(jī)發(fā)來的命令給予響應(yīng),執(zhí)行相應(yīng)的操作。在USB系統(tǒng)中,其軟件包括以下幾個(gè)部分:主機(jī)應(yīng)用程序、設(shè)備驅(qū)動(dòng)程序和設(shè)備固件程序。主機(jī)用于程序?yàn)橛脩籼峁┰O(shè)備應(yīng)用的操作平臺(tái)和交互界面,完成數(shù)據(jù)的處理和轉(zhuǎn)換,向設(shè)備發(fā)出控制命令等。設(shè)備驅(qū)動(dòng)程序是USB設(shè)備正常工作的基礎(chǔ),它提供了設(shè)備接人系統(tǒng)時(shí)要用到的引導(dǎo)文件、設(shè)備信息文件等。
2.1 動(dòng)態(tài)鏈接庫
系統(tǒng)應(yīng)用中CH375提供了設(shè)備方式下標(biāo)準(zhǔn)驅(qū)動(dòng)CH375WDM.INF和動(dòng)態(tài)鏈接庫 CH375DL L.DLL,通過加載驅(qū)動(dòng)信息可以在應(yīng)用程序中直接調(diào)用動(dòng)態(tài)鏈接庫。CH375在計(jì)算機(jī)端提供應(yīng)用層接口。應(yīng)用層接口是由CH375動(dòng)態(tài)鏈接庫DLL提供的面向功能應(yīng)用的API,所有API在調(diào)用后都有操作狀態(tài)返回,但不一定有應(yīng)答數(shù)據(jù)。CH375動(dòng)態(tài)鏈接庫提供的API包括:設(shè)備管理API、數(shù)據(jù)傳輸 API、中斷處理API。
設(shè)計(jì)中采用C語言作為計(jì)算機(jī)端應(yīng)用軟件的開發(fā)平臺(tái),首先需要將CH375的動(dòng)態(tài)鏈接庫、驅(qū)動(dòng)程序添加到到編譯環(huán)境中。動(dòng)態(tài)鏈接庫的使用,簡化了USB設(shè)備開發(fā)的步驟,降低了開發(fā)難度,為系統(tǒng)調(diào)試節(jié)省了時(shí)間。
2.2 應(yīng)用程序與設(shè)備間的通信
通過動(dòng)態(tài)鏈接庫的數(shù)據(jù)傳輸函數(shù),CH375在與M30627FJPGP之間提供了端對(duì)端的連接。應(yīng)用程序與設(shè)備固件間的通信采用請(qǐng)求加應(yīng)答方式,該通信方式具有較好的交互性和可控性。請(qǐng)求加應(yīng)答方式使用一個(gè)下傳的主動(dòng)請(qǐng)求和一個(gè)上傳的被動(dòng)應(yīng)答進(jìn)行交互式的雙向數(shù)據(jù)通信,下傳與上傳一一對(duì)應(yīng),相互關(guān)聯(lián)。所有的通信都由客戶應(yīng)用程序發(fā)起,然后以接收到M30627FJPGP的應(yīng)答結(jié)束。
2.3 固件程序設(shè)計(jì)
CH375與M30627FJPGP之間設(shè)計(jì)成完全的中斷驅(qū)動(dòng)。當(dāng)單片機(jī)處理前臺(tái)任務(wù)時(shí),USB的傳輸可在后臺(tái)進(jìn)行,這就確保了最佳的傳輸速率和更好的軟件結(jié)構(gòu),同時(shí)簡化了編程和調(diào)試。
后臺(tái)ISR(中斷服務(wù)程序)和前臺(tái)主程序循環(huán)之間的數(shù)據(jù)交換可以通過事件標(biāo)志和數(shù)據(jù)緩沖區(qū)來完成,其實(shí)現(xiàn)原理如圖3所示。
?
應(yīng)用中的單片機(jī)讀寫U盤軟件可分成兩大部分:應(yīng)用程序和固件程序。應(yīng)用程序完成系統(tǒng)的數(shù)據(jù)采集、處理任務(wù)、外圍控制等功能,固件程序處理底層的USB通信協(xié)議、文件系統(tǒng),完成數(shù)據(jù)在USB總線上的可靠傳輸和在U盤上的存取操作。為方便在不同控制器或應(yīng)用系統(tǒng)上進(jìn)行移植,固件采取積木式結(jié)構(gòu),如圖4所示。
?
2.4 USB讀寫操作
USB讀寫操作可根據(jù)不同的系統(tǒng)要求設(shè)定執(zhí)行程序。在PCR儀系統(tǒng)設(shè)計(jì)中,M30627FJPGP將通過-A/D通道采集到的數(shù)據(jù)向U盤內(nèi)指定的文件: ADC_DATA.TXT追加數(shù)據(jù)。開機(jī)后,單片機(jī)向CH375寫入配置字,設(shè)定其進(jìn)入主控(Host)模式,進(jìn)人數(shù)據(jù)采集狀態(tài),等待USB總線事件發(fā)生。U盤追加數(shù)據(jù)流程如圖5所示。
?
3 USB在PCR嵌入式系統(tǒng)中的難點(diǎn)及解決方案
傳統(tǒng)的USB主控體系結(jié)構(gòu)是PC應(yīng)用的一種理想的解決方案,而在PCR嵌入式系統(tǒng)中很難實(shí)現(xiàn),具體表現(xiàn)在:
(1)嵌入式系統(tǒng)具有的系統(tǒng)資源容量和能力有限;
(2)嵌入式應(yīng)用一般要對(duì)實(shí)時(shí)事件做出及時(shí)的響應(yīng)。把USB固件添加到系統(tǒng)中,就會(huì)增加復(fù)雜性,導(dǎo)致在實(shí)時(shí)應(yīng)用的設(shè)計(jì)和調(diào)試中出現(xiàn)更多中斷和實(shí)時(shí)事件;
(3)嵌入式市場具有種類繁多的處理器和實(shí)時(shí)操作系統(tǒng)。將USB固件開發(fā)和移植到任何特定處理器/實(shí)時(shí)操作系統(tǒng)平臺(tái)的努力都將花費(fèi)大量時(shí)間,而且需要工作人員在USB技術(shù)上具有很高的專業(yè)技能。
克服嵌入式裝置中USB主控設(shè)計(jì)的復(fù)雜性問題,其方法之一是把與USB即插即用能力相關(guān)的智能揉入U(xiǎn)SB主端控制器本身之中。要做到這一點(diǎn),所采取的辦法是:
把USB主控棧和器件驅(qū)動(dòng)的共用組件嵌入到USB控制器硬件中;
將USB主控功能壓縮到語族與ANSI C兼容的API中,而這些API被系統(tǒng)用來獲取USB主控制器中的USB主控功能。
這種設(shè)計(jì)方法可以帶來一個(gè)無需系統(tǒng)處理器干預(yù),就能處理USB主控活動(dòng)的USB主控制器。它不僅讓系統(tǒng)資源的消耗降至最低,而且也將通過系統(tǒng)總線的USB 數(shù)據(jù)流減至最小。API的設(shè)計(jì)將簡單易行,并且獨(dú)立于處理器和實(shí)時(shí)操作系統(tǒng),從而有效地降低了API集移植和集成的難度。
4 結(jié) 語
PCR儀系統(tǒng)的設(shè)計(jì),實(shí)現(xiàn)USB總線在嵌入式系統(tǒng)中的基本應(yīng)用模式。PCR儀中USB主機(jī)的實(shí)現(xiàn)方法,體現(xiàn)了USB存儲(chǔ)設(shè)備的靈活性和方便性,USB系統(tǒng)嵌入到PCR儀中方便了用戶的操作,提高了PCR儀的工作效率和儀器的可用性。
評(píng)論
查看更多