全自動(dòng)固相萃取儀控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
全自動(dòng)固相萃取儀控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
全自動(dòng)固相萃取儀控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
全自動(dòng)固相萃取儀控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
全自動(dòng)固相萃取儀控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

DesignandImplementationofControlSystemBasedonAutomaticSolidPhaseExtractionZhangBingyangB.E.(WuhanInstituteofTechnology)2009AthesissubmittedinpartialsatisfactionoftheRequirementsforthedegreeofMasterofEngineeringBiological&MedicalEngineeringintheCollegeofBiomedicalEngineeringAssociateProfessorChengYaguangMay,2013 控制的方式進(jìn)行工作??刂葡到y(tǒng)硬件電路的主控采用ARM920T內(nèi)核的S3C2440Cortex-M3STM32WinCE6.0制系統(tǒng)進(jìn)行了設(shè)了基于S3C2440的上位機(jī)控制電路和基于STM32的三維運(yùn)對WinCE內(nèi)核進(jìn)行裁剪,在ARM處理器上完成了WinCE6.0嵌入式操作系統(tǒng)設(shè)計(jì)了全自動(dòng)固相萃取儀的觸摸屏人機(jī)交互界面。在VisualStudio:固相萃取;S3C2440;Cortex-M3;三維機(jī)械臂Inrecentyears,'sfoodsafetyeventsemergeinendlessly.Foodsafetydetectionisofgreaturgency.Samplepretreatmentisoneofthekeyfactorsaffectingtestresultsofysisanddeterminationinfoodsafety.Asakindofsamplepretreatmenttechnology,SPE(Solid-PhaseExtraction)isusedtoseparate,purify,andconcentratesample.Itcanimprovetheyte’srecoveryeffectively.SPEiswidelyusedinfoodsafetyysisanddetection.WiththeresearchofSPEtechnology,thedesignofhardwarecircuitandsoftwaresystemofautomaticSPEapparatusaregivenandthedevelopmentofautomaticSPEapparatusiscompleted.SPEapparatusconsistsofthree-dimensionalroboticarm,samplingneedles,high-precisionperistalticpumpandsomemechanicalparts.ThedevelopmentofaSPEapparatusinvolvesthedisciplinesofmechanical,chemicalandautomation.Theapparatusadoptsmaster-slavecomputercooperativecontrolmethodtocarryonthework.ThemaincontrolchipsofthecontrolthesystemusingS3C2440AmicroprocessorandSTM32F103RBT6microprocessor.WinCE6.0embeddedoperationsystemisusedassoftwaresystem.Themainresearchworkisthedesignofhardwarecircuitandsoftwareofthecontrolsystem.Specificworksare asfollows:Putforwardtoadesignschemeofautomatedsolid-phaseextractiontosolvethelackofmanualextraction.Akindofupperandlowercomputercontrolmodebasedonembeddedoperationsystemisproposedandthecontrolsystemofautomaticsolid-phaseextractionapparatusisdesigned.DevelopedhostcomputercontrolcircuitbasedonS3C2440andthreedimensionalmotiontformcontrolcircuitbasedonSTM32Theoperationsystemofsolid-phaseextractionapparatusisdesignedbytailoringWinCEkernelandmigratingWinCE6.0operationsystemonARM.Designedof puterinctioninterfaceonthetouchscreen,decelopedtheapplicationsoftwareofautomaticsolid-phaseextractionapparatus.:SPE;s3c2440;Cortex-M3;three-dimensionalroboticarm; 第1章緒 選題背景與研究意 本文的主要研究內(nèi) 第2章全自動(dòng)固相萃取儀設(shè)計(jì)方案分析與研 全自動(dòng)固相萃取儀需求分 全自動(dòng)固相萃取儀機(jī)械結(jié)構(gòu)設(shè) 全自動(dòng)固相萃取儀控制系統(tǒng)總體設(shè) 運(yùn)動(dòng)控制平臺(tái)的選 操作系統(tǒng)的選 控制系統(tǒng)總體設(shè) 本章小 第3章全自動(dòng)固相萃取儀控制系統(tǒng)的硬件電路設(shè) 三維機(jī)械臂驅(qū)動(dòng)框 STM32電路設(shè) 光耦電路設(shè) 步進(jìn)電機(jī)驅(qū)動(dòng)電路設(shè) 位置檢測電路設(shè) 上下位機(jī)的連接電 本章小 第4章全自動(dòng)固相萃取儀WinCE操作系統(tǒng)的實(shí) WindowsCE6.0嵌入式操作系 WindowsCE操作系 WindowsCE開發(fā)過 全自動(dòng)固相萃取儀開發(fā)平臺(tái)搭 WindowsCE下的流驅(qū)動(dòng)程 流驅(qū)動(dòng)程序簡 流驅(qū)動(dòng)的標(biāo)準(zhǔn)接 全自動(dòng)固相萃取儀流接口驅(qū)動(dòng)程序開 全自動(dòng)固相萃取儀的BSP的定 GPIO驅(qū)動(dòng)的定 GPIO控制的實(shí) 串口驅(qū)動(dòng)的定 串口通信的實(shí) 嵌入式操作系統(tǒng)的移 本章小 第5章全自動(dòng)固相萃取儀控制系統(tǒng)的軟件設(shè) 軟件設(shè)計(jì)框 人機(jī)界面設(shè) 鍵盤輸入功能的實(shí) 手動(dòng)操作功能的實(shí) 時(shí)序流程編輯與功能的實(shí) 條目增 條目插入和刪 萃取程序的和調(diào) 流量校準(zhǔn)功能的實(shí) 步進(jìn)電機(jī)控制的實(shí) 本章小 第6章總結(jié)與展 實(shí)驗(yàn)結(jié)果與分 工作總 展 參考文 附錄:攻 期間所的學(xué) 第1 年月的三聚胺、 出臺(tái)《2011年食品安全重點(diǎn)工作安排》,將食品安 年月日,等8部門根據(jù)《食品安《關(guān)于加強(qiáng)食品的決定》發(fā)布[6]。相關(guān)法律和政策的發(fā)布表明了我國對近年來日益突出的食品安全問題的密切關(guān)注和保證食品安全的決心。樣品前處理是指樣品的以及對樣品進(jìn)行合適分解和溶解并對待測組分固相萃?。⊿olidPhaseExtrtaction,SPE)是近年來國外新開發(fā)的一種樣過柱流速的控制極其,每根SPE柱的流速不同,重現(xiàn)性就難以提高。另外,手工操作勞動(dòng)重復(fù)性高,效率低,耗時(shí)耗力,整個(gè)過程占據(jù)了分析檢測工作80%食品安全,手工萃取裝置勞動(dòng)強(qiáng)度大,難以實(shí)現(xiàn)高通量快速檢測,效率低,國外固相萃取儀器的研制起步較早,技術(shù)相對成熟。已經(jīng)有比較成全自(LabTech取的全部步驟,采用正相技術(shù)控制液體的流速,系統(tǒng)的操作情況通過壓力感量最高只有四通道,國內(nèi)僅有大型的分析才有能力配備,大部分任然采用對提升我國食品安全檢測的檢測能力具有重要的實(shí)際意義。本課題根據(jù)固相萃取儀的功能要求,通過對固相萃取的原理進(jìn)行研究與分析,基于S3C2440處理器和STM32F103RBT6雙核結(jié)構(gòu)以及WinCE6.0操作系統(tǒng),第一章介紹課題背景、研究意義與安排第四章介紹基于WinCE6.0的全自動(dòng)固相萃取儀的操作系統(tǒng)的定制與實(shí)現(xiàn),完第五章介紹全自動(dòng)固相萃取儀的系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn),主要實(shí)現(xiàn)固相萃取和加載功能。另外簡要介紹STM32對三維機(jī)械臂定位控制的實(shí)現(xiàn)。第六章對儀器的精度進(jìn)試,用統(tǒng)計(jì)學(xué)方法對測試數(shù)據(jù)進(jìn)行分析,對檢2章品前處理(這一步不包括在SPE過程中)、SPE溶劑活化、SPE助平衡、樣品加性的相互作用的環(huán)境。為了使固相萃取填料從預(yù)處理到樣品加入時(shí)都保持潤濕,1ml/min5ml/min[2]洗SPE(一般2ml-200ml,當(dāng)洗脫液停留在填料上20秒到1SolidWorks2012三維軟件對全自動(dòng)固相萃取儀的機(jī)械結(jié)構(gòu)進(jìn)行設(shè)計(jì)13。該全自動(dòng)固相萃取儀通過三維機(jī)械臂和高精度蠕動(dòng)泵實(shí)現(xiàn)固相萃取的自動(dòng)XYZZ12跟取樣針管,針管與多通道蠕動(dòng)泵上的12跟硅膠管相連;ZX器背板各個(gè)溶劑盒上方;Y 運(yùn)動(dòng)控制平臺(tái)的高,擴(kuò)展性差;開放式運(yùn)動(dòng)控制方案以PC機(jī)作為信息處理平臺(tái),結(jié)合運(yùn)動(dòng)路,在低成本、低振動(dòng)、低噪聲、高速度的設(shè)計(jì)中應(yīng)用效果較佳[19。嵌入式操作系統(tǒng)是運(yùn)行在嵌入式硬件平臺(tái)上,對整個(gè)系統(tǒng)及其所操作的部件、裝置等資源進(jìn)行統(tǒng)一協(xié)調(diào)、指揮和控制的系統(tǒng)軟件]嵌入式Linux是Linux的演化版本,采用模塊化體系結(jié)構(gòu)、各模塊具有可裁VxWorks是風(fēng)河公司于1983年推出的一款嵌入式操作系統(tǒng),自推出以的開發(fā)環(huán)境需要10萬元左右的。uC/OS-II是由nJ.Labrosse于1992年編寫,經(jīng)過近十年的應(yīng)用和修改,1999上[22]。但是uC/OS-II有一定的局限性,不能像其他的嵌入式操作系統(tǒng)提供APIWindowsCE操作系統(tǒng)是微軟專門為掌上電腦等移動(dòng)設(shè)備設(shè)計(jì)的嵌入式操作系統(tǒng)。它提供了組件豐富的功能模塊,尤其在圖形界面接口GUI和多方面具有明顯的優(yōu)勢,提供與Windows平臺(tái)相似的開發(fā)環(huán)境和API接口函數(shù),使開發(fā)人員能夠迅速的從Windows開發(fā)平臺(tái)轉(zhuǎn)入到WinCE嵌入式系統(tǒng)開發(fā)上[23。與其他幾個(gè)低[24]WinCE6.0控制系統(tǒng)總體設(shè)XYZ本系統(tǒng)采用ARM+STM32的雙核結(jié)構(gòu)。采用搭載嵌入式WinCE操作系統(tǒng)的ARM處理器作為上位機(jī),基于WinCE設(shè)計(jì)系統(tǒng)的操控軟件,上位機(jī)通過數(shù)據(jù)接口和主控全自動(dòng)固相萃取儀進(jìn)行操作。下位機(jī)以STM32單片機(jī)為,主要控制三維機(jī)械臂的定位,硬件電路主要由X、Y、Z軸運(yùn)動(dòng)控制電路組成,取樣用的蠕動(dòng)泵由上位3根據(jù)控制系統(tǒng)設(shè)計(jì)方案,搭載WinCE6.0操作系統(tǒng)的上位機(jī)系統(tǒng)軟件對儀器運(yùn)制。上位機(jī)采用Micro2440開發(fā)板,電路設(shè)計(jì)的重點(diǎn)是上下位機(jī)的通信電路設(shè)計(jì)和STM32步進(jìn)電機(jī)控制電上位機(jī)的系統(tǒng)軟件對蠕動(dòng)泵和三維機(jī)械臂Y軸載動(dòng)系統(tǒng)采用57HS13兩相混合式步進(jìn)電機(jī),步距角1.8°,保持轉(zhuǎn)矩1.3N.M。Z軸升降系統(tǒng)采用42HS03兩相混合式步進(jìn)電機(jī),步距角1.8電機(jī)控制系統(tǒng)的是STM32F103RBT6。STM32F103RBT6擁有的硬件資128KBFlash、20KBSRAM、416位定時(shí)器、51個(gè)可IO等,時(shí)鐘要讓正常工作,基本的電路必不可少。這里基本的電路有電3.2復(fù)位電路:采用專業(yè)的復(fù)位MAX811實(shí)現(xiàn)CPU所需要的低電平復(fù)位。復(fù)位電路如圖3.3所示。電路的輸出點(diǎn)連接到STM32的NRST,按下按鈕后該引腳為低3.38MHz外部晶振,最終經(jīng)過PLL72MHz。時(shí)鐘電路如圖3.4所示。3.4模式或正常啟動(dòng)模式。 管腳在復(fù)位時(shí)的電平狀態(tài)決定了復(fù)位后從哪個(gè)區(qū)域開始執(zhí)行程序[27],通過BOOT[1:0]引腳的跳線,可以根據(jù)需要選擇閃存器、系統(tǒng)器或SRAM三種啟動(dòng)模式中的一種。模式選擇電路如圖3.5所示。JTAG接口電路:JIAG(JointTestActionGroup),又稱JTAG接口,主要用來并調(diào)試代碼,STM32內(nèi)部有JTAG核,可以通過外部JTAG調(diào)試電纜和仿20JTAG光耦電路設(shè)步進(jìn)電機(jī)驅(qū)動(dòng)過程中會(huì)產(chǎn)生強(qiáng)電流,基于STM32的控制模塊是弱電電路,兩者。電路如圖3.7所示。X軸、Y軸與Z軸步進(jìn)電機(jī)的脈沖和方向信號(hào)分別進(jìn)電機(jī)驅(qū)動(dòng)。光電耦合器件具有很強(qiáng)的共模抑制能力[28],通過光電耦合器,保證安全的同時(shí)也增加了信號(hào)傳輸?shù)目煽啃訹29]0.25,2WNFA、NFB外接撥碼開關(guān)來設(shè)定不同的細(xì)分值,電路如下圖3.9所示。傳感器,EE-SX67050100mA的開關(guān)能力,采用NPN輸出模式,反應(yīng)頻率高達(dá)1KHz[34],滿足本系統(tǒng)位置檢測的要求。由于電源存在沖擊電壓,在EE-SX672的電源輸入端和地之間需要并聯(lián)一個(gè)耐壓值30至35V的齊納二極管和0.01uF的電容吸收沖擊電為了使傳感器的輸出信號(hào)穩(wěn)定,輸出端外接一個(gè)4.7千歐的、0.5W的電阻上拉至24V電源端。STM32的每個(gè)IO都可以作為中斷輸入,EE-SX670的輸出信號(hào)需要給STM32的外部中斷端口,而STM32的IO輸入電壓為3.3V,所以EE-SX670的輸出信號(hào)需要經(jīng)過電平轉(zhuǎn)換后才能連接到STI32IO端口。上位機(jī)和下位機(jī)的指令發(fā)送和信息反饋通過S3C2440和STM32之間IO口的電平信號(hào)傳輸實(shí)現(xiàn)。S3C2440的GPE14、GPE15、GPJ9、GPJ7、GPJ5、GPJ3、GPF1配置為輸出端口STM327IO接,上位機(jī)通過這7據(jù)線給STM32發(fā)送指令,STM32根據(jù)接收到的指令信號(hào)控制三維機(jī)械臂執(zhí)行相關(guān)動(dòng)作。S3C2440的GPJ0配置為輸入,與STM32的輸出端口連接,下位機(jī)傳遞的章著重介紹了STM32電路、光電耦合電路、步進(jìn)電機(jī)驅(qū)動(dòng)電路和位置檢測電路,4WinCE要有WinCE、Linux和uC/OS-II等[35]。本文設(shè)計(jì)的全自動(dòng)固相萃取儀上位機(jī)采用WinCE6.0WinCEWinCEWindowsCE是微軟公司提供的一個(gè)嵌入式、移動(dòng)計(jì)算的基礎(chǔ)平臺(tái),是一個(gè)機(jī)、IP、網(wǎng)絡(luò)數(shù)字電視、PDA、通信、導(dǎo)航、醫(yī)療、工業(yè)控制等領(lǐng)域有形界面,開發(fā)人員可以在這個(gè)平臺(tái)下設(shè)計(jì)各種的圖形界面。上位機(jī)控制系統(tǒng)采用三星公司的S3C2440A處理器作為控制。S3C2440A是除,將平臺(tái)按照所需要的目標(biāo)平臺(tái)進(jìn)行定制[40],WindowsCE應(yīng)用程序的開發(fā)流程如圖4.1所示。開開獲取YN導(dǎo)出調(diào)板級(jí)支持包(BoardSupportPacket,BSP)是一個(gè)支持特定標(biāo)準(zhǔn)開發(fā)板硬件另一方面,可以修改第硬件廠商提供的BSP來創(chuàng)建。SDK(SoftwareDevelopmentKit,)是一些被用于為特行WinCE應(yīng)用系統(tǒng)開發(fā),需要根據(jù)搭建的平臺(tái)導(dǎo)出自己的SDK。的硬件廠商提品的BSP,這時(shí)只需要將廠商提供的BSP導(dǎo)入到 程序的開發(fā)。經(jīng)過編譯調(diào)試后生成系統(tǒng)鏡像文件NK.bin,將鏡像文件到平臺(tái)上,若不滿足要求,則繼續(xù)修改,直到符合要求,這時(shí)候?qū)DK導(dǎo)出,基于SDK進(jìn)行應(yīng)用程序的開發(fā)。全自動(dòng)固相萃取儀開發(fā)平臺(tái)搭全自動(dòng)固相萃取儀上位機(jī)控制系統(tǒng)的開發(fā)包括定制的操作系統(tǒng)的開發(fā)和應(yīng)WinCEWinCEtformBuilder從WinCE6.0將tformBuilder為VisalStudioVisualStudio2005統(tǒng)內(nèi)核定制失敗,直接影響到項(xiàng)目開發(fā)。開發(fā)平臺(tái)的搭建過程中需要用到VisualStudio2005集成開發(fā)環(huán)境和目標(biāo)平臺(tái)的SDK以及ActiveSync6.1VisualStudio2005集成了tformBuilder,可進(jìn)行BSP開發(fā)、操作系統(tǒng)定制和SDK導(dǎo)出。導(dǎo)出的SDK安裝在PC機(jī)上給應(yīng)用程序的開發(fā)提供支持。ActiveSync6.1在PC機(jī)上安裝WinCE6.0需要安裝VisualStudio2005和tformBuilder6.0以及它們的補(bǔ)丁文件。與WinCE5.0不同,到WinCE6.0tform在tformBuilder6.0安裝過程中選擇CE6.0OperatingSystem操作系統(tǒng)組 面兩者安裝完成后還需要安裝微軟的同步工具ActiveSync6.1。PC上搭建VisualStudio2005開發(fā)環(huán)境后Micro2440發(fā)板上安裝WinCE6.0操作VisualStudio2005編譯完鏡像文件NK.bin應(yīng)用程序開發(fā)環(huán)境,進(jìn)行應(yīng)用程序開發(fā),應(yīng)用程序開發(fā)完成后,通過Build->DeploySolutionCtrl+F5動(dòng)程序是平臺(tái)建立時(shí)候必須提供的設(shè)備驅(qū)動(dòng)程序,是GWES(圖形窗口和系于WindowsCE,此類驅(qū)動(dòng)一般都是與圖形界面相關(guān)的I/O設(shè)備驅(qū)動(dòng),驅(qū)動(dòng)般表現(xiàn)為“*.dll”文件。流接口設(shè)備的驅(qū)動(dòng)模型如圖4.2所示。流接流接流接NDISNDISNDISAPIWindowsCE圖4.3展示了流接口驅(qū)動(dòng)程序和其他系統(tǒng)部件之間的關(guān)可以清楚的看到

Interrupt

atboottime圖4-3中的Application,即應(yīng)用程序,包括任何可以設(shè)備的應(yīng)用程Kernel是WindowsCE操作系統(tǒng)的 ,負(fù)責(zé)重定向應(yīng)用程序的文件I/O函數(shù)到適當(dāng)?shù)牧鹘涌隍?qū)動(dòng)程序的點(diǎn)。DeviceManager是用于加載和卸載流接口驅(qū)動(dòng)程序。StreamInterfaceDriver是流接口驅(qū)動(dòng)程序?qū)?yīng)的位置。Build-InDevice是一個(gè)基于WindowsCE平臺(tái)的設(shè)備隨即提供的驅(qū)動(dòng)程序。Hardwaretform主要指基于WindowsCE的硬件平臺(tái),一般由CPU、內(nèi)存、鍵流驅(qū)動(dòng)的標(biāo)準(zhǔn)接從流接口驅(qū)動(dòng)程序與操作系統(tǒng)和硬件的關(guān)系知,應(yīng)用程序使用WindowsCE()用于需要卸載驅(qū)動(dòng)程序,由設(shè)備管理器通過DeactivateDevice()函數(shù)來XXX_PowerDow(全自動(dòng)固相萃取儀流接口驅(qū)動(dòng)程序開統(tǒng)中的GPIO驅(qū)動(dòng)程序?yàn)槔?,介紹流接口驅(qū)動(dòng)程序的開發(fā)過程。Micro2440BSP在BSPdriver下創(chuàng)建要編寫的驅(qū)動(dòng)的。在C:\WINCE600\TFORM\mini2440\Src\Drivers中創(chuàng)建一個(gè)GPIO,如圖4.4所示。先拷貝一個(gè)BSP中現(xiàn)有的.def文件,在這個(gè)文件的基礎(chǔ)上修改。本系統(tǒng)中的GPIO.def文件的內(nèi)容如圖4.5。編寫流接口驅(qū)動(dòng)程序可以使用tformBuilder的動(dòng)態(tài)庫生成向?qū)?,GPIO根據(jù)實(shí)際配置進(jìn)行編寫,這里采用手工創(chuàng)建。GPIO.cpp中包括虛擬地址分配函數(shù)Virtual_Alloc()、動(dòng)態(tài)庫函數(shù)BOOLWINAPIDllEntry()、GPIO初始化函數(shù)DWORDGPO_Init()、IOBOOLGPO_IOControl()等。編譯器dirs識(shí)別指定哪些和文件是要編譯的,這里需要告知編譯器編譯編寫的GPIO驅(qū)動(dòng)。找到目錄C:\WINCE600\TFORM\mini2440\Src\Drivers下面的dirs文件,用文本編輯器打開該文件,找到“DIRS=”等式,在該等式中插入1行,DIRS=GPIO\,如圖4.6。插入這行后在tformBuilder編譯操作系統(tǒng)時(shí),會(huì)自動(dòng)編譯GPIO驅(qū)操作系統(tǒng)運(yùn)行時(shí)映像中包含的模塊和文件的定義在tform.bib文件中,.bib文件在編譯的時(shí)候決定如何將這些模塊和文件加載到目標(biāo)設(shè)備的打開在tformBuilder的Workspace窗口,找到tform.bib文件并在tformBuilder中將其打開,在該文件中按照加入如下內(nèi)容: NK圖中$(_FLATERELEASEDIR)表示生成目錄,這里為設(shè)備管理器要識(shí)別和管理驅(qū)動(dòng)程序,需要在表中建立驅(qū)動(dòng)程序的點(diǎn)。在ParameterView選項(xiàng)卡選擇tform.reg文件單擊該文件,在tformBuilder中打開改文件,在該文件的最后加入GPIO驅(qū)動(dòng)表信息,如圖4.8那么在生成操作系統(tǒng)映像時(shí),tformBuilder會(huì)將上面程序中的內(nèi)容加入到表中,系統(tǒng)啟動(dòng)時(shí),該驅(qū)動(dòng)被自動(dòng)加載。重新編譯創(chuàng)建的平臺(tái),生成操作系統(tǒng)鏡像。完成后,用串口線將開發(fā)板與PCGPO:DLL_PROCESS_ATTACH::GPO_Init.則說明GPIO驅(qū)動(dòng)程序加載成功。GPIO是ARM最基本的輸入輸出通道。對GPIO的操作主要是針對方向控制寄存器和數(shù)據(jù)寄存器的讀寫,WinCEGPIO口驅(qū)動(dòng)程序設(shè)計(jì)。WindowsCE系統(tǒng)將S3C2440的GPIO的實(shí)地址映射到一個(gè)虛擬地OEMAddressTable建立物理地址和虛擬地址之間的映射關(guān)處于用戶空間的驅(qū)動(dòng)程序無OEMAddressTable映射內(nèi)核空間進(jìn)行直接需要在用戶空間用VirtualAlloc函數(shù)申請?zhí)摂M內(nèi)存,將內(nèi)核空間的虛擬地址用VirtualCopy函數(shù)二次映射到本地用戶空間中去。才能夠完成對GPIO的控制。GPF1,GPJ0執(zhí)行的動(dòng)作對應(yīng)關(guān)系如表5.1所示。5.1GPE14GPE15GPJ9GPJ7GPJ5GPJ3010011X010100X010101X010110X010111X011000X101001Y101010Y111011Z111100ZGPE14GPE15GPJ9GPJ7GPJ5GPJ3=010011GPF1行,直到零點(diǎn)檢測的槽型光電開關(guān)觸發(fā)。同時(shí),電機(jī)在運(yùn)動(dòng)過,STM32由此可見,本系統(tǒng)中GPIO驅(qū)動(dòng)的定制主要是設(shè)置7個(gè)輸出端口和1個(gè)輸入上一小節(jié)以本系統(tǒng)中的GPIO驅(qū)動(dòng)介紹了流接口驅(qū)動(dòng)程序的開發(fā)過程,其中準(zhǔn)需求介紹本系統(tǒng)的GPIO驅(qū)動(dòng)的定制。因?yàn)樵赪inCE下面能夠直接的都是虛擬地址,不能直接GPIO端口,因此首先將GPIO端口的物理地址映射到虛擬地址上來,使用VirtualAlloc和VirtualCopy進(jìn)行內(nèi)存映射[47。GPIO虛擬內(nèi)存分volatileIOPreg*s2440IOP=(IOPreg VirtualAlloc(0,sizeof(IOPreg),MEM_RESERVE,PAGE_NOACCESS);if(s2440IOP==NULL) G(1,(TEXT(":GPIOVirtualAlloc}g),PAGE_READWRITE|PAGE_NOCACHE)){RETAIG(1,(TEXT(":GPIOVirtualAlloc}}系統(tǒng)中GPE14、GPE15、GPJ9、GPJ7、GPJ5、GPJ3和GPF1都為輸出口,GPJ0為輸入端口,下面以GPE14和GPJ0的操作為例介紹GPIO驅(qū)動(dòng)代碼的實(shí)現(xiàn)。輸出端口GPE14輸出高電平或者低電平,輸入端口GPJ0用于輸入的電平狀態(tài),在頭文件GPIO.hGPE14GPJ0的宏定義如下:#defineIO_CTL_GPE14_HIGH0x24#defineIO_CTL_GPE14_LOW0x25#defineIO_CTL_READ_GPJ0BOOL{//GPOGpios2440IOP->rGPECON=(s2440IOP->rGPECON&~(3<<28))|(1<<s2440IOP->rGPJCON=(s2440IOP->rGPJCON&~(3<<0))return}BOOLGPO_IOControl(){{cases2440IOP->rGPEDAT=s2440IOP-cases2440IOP->rGPEDAT=s2440IOP-case*pBufOut=(BYTE)((s2440IOP->rGPJDAT&(1<<0))?1:0}RETAIG(1,(TEXT("GPIO:Ioctlcode=0x%x\r\n"),dwCode));returnTRUE;}應(yīng)用程序使用API函數(shù)CreateFile和DeviceIoControl調(diào)用GPIO驅(qū)動(dòng),首先通過通過CreateFile獲取驅(qū)動(dòng)文件句柄,后用DeviceIoControl對GPIO端口進(jìn)行操作:0,NULL,OPEN_EXISTING,0,0);if(Gpiohandle=={AfxMessageBox(_T(GPIO}{}S3C2440AI/O據(jù)給定的協(xié)議,將波特率設(shè)置為9600,泵的控制指令如下: 0.1>1001 直接輸入泵的轉(zhuǎn)速,使泵快速到達(dá)所要求的速度舉例:‘1.2’‘25.3’‘123’‘24斷處理。串口驅(qū)動(dòng)程序的接口函數(shù)由一些屬于MDD層的以“COM”開頭的函數(shù)組COM_Init()、COM_Open()、COM_Close()、COM_IOControl()、通過調(diào)用這個(gè)函數(shù)調(diào)用底層實(shí)現(xiàn)的函數(shù),通過COM_Write()把要傳送的數(shù)據(jù)送到串口,COM_Read()獲得串口接收到的數(shù)據(jù)。通過CreateFile調(diào)用底層驅(qū)動(dòng)程序打開串口。串口打開后,調(diào)用然后調(diào)用 m,對接受和發(fā)送緩沖區(qū)進(jìn)行設(shè)置。之后調(diào)用mTimeouts函數(shù)對超時(shí)參數(shù)設(shè)置,將整個(gè)實(shí)現(xiàn)過程封裝在OpenPort函數(shù)區(qū),通過調(diào)用ClosePort函數(shù)和 m函數(shù)來實(shí)現(xiàn)。ARM在主線程外創(chuàng)建一個(gè)串口接收線程hComRecvThread。Micro2440COM2與蠕動(dòng)COM2ReadFile數(shù)據(jù),所讀數(shù)據(jù)到一個(gè)緩沖區(qū)ComRecvBuf[]內(nèi)創(chuàng)建串口接收線程退出線程,使程序回到主線程。本系統(tǒng)中在程序中創(chuàng)建一個(gè)串口接收線程退出ThreadEvent來實(shí)現(xiàn)串口通信線程和主線程的同步。上位機(jī)發(fā)送控制ReadFileWriteFile數(shù)據(jù)過進(jìn)行寫數(shù)據(jù)操作,接收過進(jìn)行讀數(shù)據(jù)操作。CloseHandle將編寫的驅(qū)動(dòng)程序GPIO.c、GPIO.def、s2440.h、makefile和sources文件放在BSP下的C:\WINCE600\TFORM\mini2440\Src\Drivers\GPIO文件夾中,然VisualStudio2005AdvancedBuildCommands擇CleanSysgen編譯結(jié)束后生成二進(jìn)制內(nèi)核鏡像文件NK.bin和NK.bin0NK.bin的內(nèi)容是被壓縮的,而NK.bin0沒有,通過超級(jí)終端將NK.bin0到到內(nèi)存中,從NandFlash啟動(dòng)系統(tǒng),經(jīng)過上述過程WinCE的底層驅(qū)動(dòng)程序以及系統(tǒng)本章結(jié)合全自動(dòng)固相萃取儀的上位機(jī)控制系統(tǒng)的需求,首先介紹了WinCE嵌入紹了WinCEBSP中需要的GPIOGPIO和串口接口函數(shù)做了說明,詳細(xì)論述了本系統(tǒng)上下位機(jī)交互控制和上位機(jī)對多通道蠕動(dòng)泵的控制實(shí)現(xiàn),最5需要的驅(qū)動(dòng)程序進(jìn)行編寫,應(yīng)用程序設(shè)計(jì)通過VisualStudio2005下面進(jìn)行WinCEVisualStudio須先安裝先前內(nèi)核定制時(shí)系統(tǒng)內(nèi)核導(dǎo)出來的SDK,在該SDK基礎(chǔ)上進(jìn)行應(yīng)用程序的要實(shí)現(xiàn)固相萃取的自動(dòng)化,首先要準(zhǔn)確控制X軸載動(dòng)裝系統(tǒng)、Y軸載動(dòng)系統(tǒng)和Z軸升降系統(tǒng)的定位和蠕動(dòng)泵的泵液量,其次,要能通過編程控制萃取流程來滿足鍵樣管定和動(dòng)的關(guān)全動(dòng)作用不樣固萃取5.15.2運(yùn)運(yùn)運(yùn)運(yùn)劑劑劑用戶輸用戶輸入體手動(dòng)操作完加載方開是否開是否調(diào)方NY設(shè)定萃取流完輸入方案名保完本系統(tǒng)通過觸摸屏儀器的運(yùn)行,其操控界面如圖5.3所示。用戶界單位分別為mlml/min;用戶通過手動(dòng)操作按鈕控制進(jìn)樣針管的定位;時(shí)序流 數(shù)字鍵盤用于對萃取溶劑流速以及校準(zhǔn)參數(shù)輸分別用三個(gè)EditControl對應(yīng)三個(gè)編輯控件。以體積輸入為例,該EditControlID為IDC_EDIT_Volume,使用ON_EN_SETFOCUS獲得編輯控件焦點(diǎn),在數(shù)字按鍵的處void{m_test=2;}if(m_test=={volume+=_T("1");}NYNYII_C3發(fā)送脈沖,動(dòng),取樣針管運(yùn)動(dòng)到洗脫溶劑盒底部后脈I_C2管上方后脈停止完完萃取小柱推進(jìn)到收集試管正上Send_Z_RunToZeroMSG脈沖發(fā)送完成消息。接著通過Send_X_RunToEluMSG、蠕動(dòng)泵的控制是通過WinCE下對串口的收發(fā)進(jìn)行控制實(shí)現(xiàn)的。按鈕觸發(fā)后,首先通過函數(shù)打開串口,然后通過串口指令發(fā)送函數(shù)發(fā)送蠕動(dòng)泵控制指令。函數(shù)確定打開端口的端、波特率、數(shù)據(jù)位、停止位、校驗(yàn)位參數(shù),創(chuàng)建串口接收線串口接收線程退出。通過封裝串口指令發(fā)送函數(shù),只需要修改函數(shù)中的m_strSendEdit字符的值,就能實(shí)現(xiàn)對蠕動(dòng)泵的控制,蠕動(dòng)泵啟停、正反轉(zhuǎn)和全速運(yùn)行函數(shù)分別為SendStartDateSendStopDate、SendForRunDate、SendRewRunDateSendAirChannelSData。void {DWORDIDThread;CStringstrPort=_T("COM2");DWORDbaud =9600;DWORD =BYTEstopbit BYTE =BOOLret=OpenPort(strPort,baud,databit,stopbit,parity);if(ret==FALSE)m_ExitThreadEvent=CreateEvent(NULL,TRUE,FALSE,NULL);hRecvThread= CreateThread(0,0, CommRecvTread,this, if(hRecvThread=={MessageBox(_T("CreateThreadFailed!"));}}void{DWORDdwactlen; m=={AfxMessageBox(_T("SerialPortOpenFailed!"));}intlen=m_strSendEdit.GetLength();char*psendbuf=newchar[len];for(inti=0;i<psendbuf[i]=(char)m_strSendEdit.GetAt(i); delete[]psendbuf;}發(fā)送停止、正反轉(zhuǎn)和速度參數(shù)時(shí)候,只需要修改m_strSendEdit的值即時(shí)序流程編輯與是全自動(dòng)固相萃取儀的重要功能,用戶通過時(shí)序流程編輯與操控儀器完成自動(dòng)化的固相萃取操作。以三聚胺HPLC檢測方法樣品好后,固相萃取步驟如下3ml5ml1ml/min樣醇(水樣醇(水醇在時(shí)序流程編輯界面按照如圖5.7下方式設(shè)定即為三聚胺全自動(dòng)固相萃編輯框左邊的增加、刪除和插入按鈕可以對流程編輯框里面的條目進(jìn)行增加、刪除和插入操作,方便用戶更改萃取流程。下方的方案保存和加載按鈕用5.8條目增

//獲取EditControl控件輸入?yún)?shù)doublevelocity_temp,volume_temp;indexC= count= indexL=m_ListBox.GetCurSel();culsorID=m_ListBox.GetCount()+1;if(count=={}{

culsorID=1; '+volume+_T("ml\n")+''+velocity+_T("ml/min")+'');}的實(shí)現(xiàn)采用數(shù)據(jù)塊移動(dòng)的方法,由插入和刪除按鈕來完成。用戶在Listbox萃取程序的和調(diào)型。WinCE默認(rèn)的文件系統(tǒng)是對象,系統(tǒng)用到的可安裝文件系統(tǒng)和系統(tǒng)都被掛載到根之下。對文件系統(tǒng)的有兩種方式,一種是使用MFC類庫中的件系統(tǒng)進(jìn)行。系統(tǒng)以文件的方式對數(shù)據(jù)進(jìn)行和調(diào)用,通過CFile類Open打開路徑中的文件。點(diǎn)擊方案保存按鈕完成方案保存操作,萃取方案保存在系統(tǒng)根 下的void {CStdioFilefactFile;CStringCStringif(program=={}{CStringNameAndPath_T("\\ResidentFlash\\方案保存\\");NameAndPath+=program;NameAndPath+=_T(".txt");{for(inti=0;i<{strfact+='\r';}}}}void {CStringstr[20];CStringfilter;filter="txt(*.txt)|*.txt||*.*";//用于指定框打開的文件類 CStringmSourceFile=fileDialog->GetPathName();CStdioFilefile;}CStringreadout;{name_temp+=}for(inti=0;;i++){if(name_temp==}}是流量校準(zhǔn)單元,如圖5.9所示,主要對蠕動(dòng)泵的精度進(jìn)行校準(zhǔn)。

1minvoid{SendStartDate();//發(fā)送蠕動(dòng)泵開啟指令SendForRunDate(); }void{if(checkvolume==_T("0")||checkvolume==_T("")||checkvolume==_T({}{if{

}{new_m_check=

{}}}}萃取儀取樣針管的準(zhǔn)確定位。本系統(tǒng)選擇通用定時(shí)器TIM來產(chǎn)生信號(hào),輸出到步進(jìn)電機(jī)驅(qū)動(dòng)上驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)行。三軸的脈沖控制端口分別為口的輸出。以TIM3_CH1為例,簡要說明STM32控制的實(shí)現(xiàn)。 GPIOA->CRL&=0XFFF0FFFF;//PA4輸出GPIOA->ODR|=1<<4;//PA4上拉TIM3->CCMR1|=7<<12;//CH12模使能TIM3的CH1輸出,使能TIM3TIM3- //ARPE使 TIM3_CCR2WinCE6.0的全自動(dòng)固相萃取儀的應(yīng)用軟件的設(shè)計(jì)并簡要說明了步進(jìn)電機(jī)控制的STM32控制方法。第61mL,流速1mL/min,然后點(diǎn)擊執(zhí)重復(fù)步驟2、3、4十次,連續(xù)測量十次,記錄數(shù)據(jù)。測量結(jié)果如下表

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論