摘要:隨著信息技術高速發展,計算機和外圍設備通訊重要性日益增強,傳授速度快,連接簡便的USB接口是實現通訊的最常見接口,支持USB的外圍設備已經成為了一種反應技術性能的關鍵指標,本研究以PIC單片機18F67J50為控制器,對醫用肺功能測定儀進行了重新設計,實現了USB數據通訊的接口功能。
關鍵詞:PIC;USB;單片機;應用
中圖分類號:TP368.12 文獻標識碼:A 文章編號:1674-7712 (2012) 16-0049-01
肺功能測定是臨床較為常見的一種檢查,對于患者肺及氣道早期檢查具有積極作用,同時可以對患者病情嚴重程度給予評估。能夠通過檢測呼氣流速實現多項生理參數評估的醫學儀器,由于一些早期肺功能測定儀不支持USB通信,在數據導入導出中不夠方便,本研究通過帶有USB模塊的單片機改造,實現了USB通信功能。
一、PIC單片機USB模塊
帶改造肺功能測試儀采用的單片機為PIC18F6720型,為確保兼容性,加快改進速度,本次選用的單片機為PIC18F67J50系列單片機。
(一)USB外設
PIC18F67J50系列單片機的USB模塊能夠實現USB2.0串口兼容,同時可支持全速接口(12Mb/s)和低速接口(1.5Mb/s),可以全面支持中斷、控制及批量傳輸,能夠支持雙向16對端點,最多32個端點(雙向16對),RAM具有CPU和USB模塊雙重存取特性。
(二)USB電源模式
在USB電源配置方面,有著不同的要求和配置,比較常見模式為的電源模式包括Self-Power Only(僅自供電)、Dual Powe(雙電源)、Bus Power Only(僅總線供電)等三種供電模式。其中僅總線供電模式下是最簡單和是最常用的一種供電方式,這種方式電源自USB接口,在供電方式上非常簡單。為符合USB2.0對于浪涌電流的規范化要求,Vbus同接地端間等效電容應在l0uF以下。按照USB2.0的規范,USB還應可以支持低功耗掛起模式。在USB提供V的Vbus線供電過程中,其實際電流消耗應在500uA以內,通信停止至少3ms來實現主機和外設之間的掛起模式通信。在elf-Power Only(僅自供電)模式中,USB采取自身提供電源的方式,僅有很小電源來自USB,并通常都需要增加相應的連接指示器,來顯示USB和主機連接及Vbus供電情況。
(三)振蕩器
USB模塊具有相應的時鐘要求。在低速運行狀態下,需要給予USB模塊6MHz的時鐘脈沖頻率,在全速運行狀態下,需要USB模塊48MHz的時鐘脈沖頻率為48MHz。然而,無論USB模塊的時鐘脈沖頻率如何,單片機CPU等外設振蕩器均需要在一定的時鐘速度運行。
二、PIC單片機固件開發
本研究選擇的PIC單片機程序環境為MPLAB IDE,改集成開發環境平臺中,可全面支持機器碼編譯連接、源程序編寫、開發調試工具等功能。軟件可免費通過微芯公司官方網站進行下載,此外,在開發語言上也完全支持C語言以及第三方語言工具,主要包括:Byte Craft、CCS、B Knudsen Data、HI-TECH等。本研究中原有肺功能檢測儀的采取的程序編譯器為第三方提供的HI-TECH,有因此支持nc器件較少,開發成本較高,在綜合考慮成本因素和實用因素的基礎上,本研究最終采用的編譯器為微芯公司的MPLAB C18。
而采取微芯公司的MPLAB C18需要對而這需要對肺功能檢測儀原程序的變量定義實施修改,所以必須首先對MPLAB C18的變量的存儲區進行定義。默認狀態下,編譯器會假定無跨越存儲區邊界問題。因此在創建超過256字節的變量中可對鏈接描述文件進行相應修改。
三、固件編程
肺功能檢測儀固件改進的目的重要在于通過USB接口實現計算機數據處理和本機數據提取功能。因此,在主要改進容物就集中在保持原有操作代碼基礎上的USB的HID類通信上,實現USB總線的通信命令傳送和數據采集并及時返回。
(一)USB狀態和控制
在編寫USB模塊固件程序時會用到USB傳輸狀態寄存器(USTAT)、USB配置寄存器(UCFG)、USB控制寄存器(UCON) 3個寄存器進行當前工作狀態的設置和查詢,并進入到相應的控制流程當中。
控制寄存器主要包括零電平復位、USB模塊等狀態配置管理;配置寄存器主要包括片上上拉電阻、總線速度、片上收發器與USB模塊硬件相關的配置;狀態寄存器則主要負責提供串行接口引擎(SIE)中的狀態報告,一旦發現中斷信號,應首先進行該寄存器的讀取工作,并以此完成傳輸的狀態的確認。
(二)USB中斷
USB模塊的絕大部分活動均有中斷進行觸發,和其他單片機中斷源一樣,該模塊也有著自身的特定中斷邏輯結構。能夠通過一組寄存器允許USB中斷,同時可以用一組單獨的標志寄存器來實現中斷事件捕獲。在本研究中的單片機中斷邏輯中,USB中斷源均通過頂層的USB中斷請求來反應和標志位USBIF,在通過中斷第二層寄存器來進行確認。
四、系統流程與釆集
當肺功能測試儀開啟后,應首先對單片機以及液晶屏等進行初始化處理。再通過USB檢測引腳來對高電平情況進行判斷,如果出現高電平則可以說明已連接上了USB線,可以對PIC單片機的USB模塊進行初始化配置工作,在肺功能測試儀液晶屏上出現“連接USB線”提示,在這一期間應禁止鍵盤中斷使能,也就是不允許實施本機操作。隨后實施USB枚舉過程,進行接口和端點配置。在完成配置工作后,即可以實施相應的計算機操作工作。通過控制輸出端點0上位機將命令向下位機進行發送。設備完成對命令的響應工作,開始進行數據采集工作,通過中斷輸入端點1可實現返回數據。
參考文獻:
[1]張巍,鄭建彬.基于VC++實現在線簽名認證系統與USB的通信[J].計算機與數字工程,2007,10.
[2]扶文樹,何軍,陸信如.USB HID數據通信接口的設計與實現[J].工業控制計算機,2009,22(2).
[3]葉君耀,劉克寧.加密存儲設備驅動程序的優化設計[J].軟件導刊,2010,2.
[4]錢宇紅.人機接口類型USB設備的程序設計[J].微計算機信息,2010,26(12).
[5]屈景輝.TeeChart應用技術詳解[M].北京:中國水利水電出版社,2008:1-16.