鮑玉軍,葛康杰,趙夢婷
(1.常州工學院電子信息與電氣工程學院,江蘇常州213002;2.南京農業大學工學院,江蘇南京210031)
基于ARM 7內核微處理器的嵌入式USB數據采集模塊
鮑玉軍1,2,葛康杰1,趙夢婷1
(1.常州工學院電子信息與電氣工程學院,江蘇常州213002;2.南京農業大學工學院,江蘇南京210031)
針對工業生產中使用的低成本數據采集裝置同樣需要高速、可靠傳輸來采集數據的要求,研究并設計了一種基于ARM7內核微處理器S3C44B0X的嵌入式USB數據采集模塊。利用S3C44B0X內置8路10位模數轉換器,通過對USB協議及硬件模塊、嵌入式操作系統μC/OS-Ⅱ的深入研究,完成了S3C44B0X最小系統以及與USB硬件的接口電路等硬件設計,將μC/OS-Ⅱ成功移植到S3C44B0X微處理器,最終實現了該嵌入式數據采集模塊的整體可靠運行。經實際檢測、使用,該模塊具有高性能、低功耗、低成本的優點,實用價值較高,可作為基本模塊器件嵌入應用于多種數據采集傳輸場合。
S3C44B0X;USB;數據采集;μC/OS-Ⅱ
現代工業現場控制場合大多都包含了數據采集環節,傳統的數據采集系統,幾乎都采用了“以8位單片機為核心的嵌入式數據采集”模式,該模式雖然成本低廉,但在測量精度、速度和數據實時分析處理等方面能力均十分有限,而且鮮有“人性化人機交互”設計;在一些重要數據采集場合,采用PC機代替8位單片機,其綜合性能得到很大提高,但同時大大增加了產品整體成本。
與傳統數據采集卡相比,該USB數據采集模塊功能較為強大。采用各方面性能均較為優越的32位ARM7核微處理器S3C44B0X作為模塊核心,設計了與USB硬件模塊PDIUSBD12芯片的接口電路。S3C44B0X自帶了8路逐次逼近型十位模數轉換器,可用于工業生產中大部分模擬信號的A/D轉換,從而該數據采集模塊整體價格較為低廉。考慮到大多數便攜式儀器采集數據后,其數據均由計算機作深入處理,故本USB數據采集模塊設計為“從機”模式,可高速、可靠地實現數據從便攜式儀器至計算機的導入。通過移植嵌入式操作系統μC/ OS-Ⅱ至S3C44B0X,并由其管理整個系統的運行,可進一步加強數據采集模塊整體性能,可作為工業模塊廣泛嵌入、應用于各種工業控制場合,從而縮短項目開發周期,節約生產成本[1]。
1.1 S3C44B0X最小系統設計
S3C44B0X是三星公司多年前推出的ARM7內核32位微處理器,近年來隨著價格大幅降低,已開始較多地應用于以往由8位單片機為核心的嵌入式系統設計。該芯片性能優越,性價比高,提供了較為豐富的內置部件(如8路輸入10位A/D轉化器、LCD控制器等),大大降低了項目設計成本,同時簡化了硬件電路設計;其內部集成了8 kbyte Cache和SRAM能滿足正常設計需求,并可通過外部存儲器控制器進行資源擴展。
基于S3C44B0X的USB數據采集模塊硬件結構如圖1所示。針對數據采集模塊需要存儲大量采集數據,以及所移植的嵌入式操作系統μC/OS-Ⅱ需要占據相當的存儲及內存資源,需要擴展S3C44B0X外部存儲資源。采用性價比較高的2片 HY29LV160 Flash芯片(1M×16 bit)實現2M×32 bit外部存儲系統,基本能滿足采樣數據以及系統軟件代碼(含μC/OS-Ⅱ軟件內核)的存儲;因S3C44B0X是32位數據處理系統,采用2片HY57V641620(8 Mbit,16位數據寬度)構造16 Mbit× 32位數據寬度。為保證數據采集模塊的穩定可靠電源供應,同時滿足低功耗要求,選擇高效、低功耗電壓調節芯片及相關電源器件[2]。

圖1 USB數據采集模塊
為提高該模塊的人性化交互水平,利用S3C44B0X內置的LCD控制器設計與LCD液晶顯示屏的硬件電路,可簡化硬件電路設計。考慮到成本,且因為S3C44B0X僅能驅動STN型LCD屏,采用SHARP公司的LM057QC1T01型彩色液晶屏,該屏幕每行能顯示320像素,共240行,可滿足大部分工業控制要求。
1.2 USB接口電路
目前,常見操作是將數據采集模塊中所采集的數據導入計算機,再作進一步分析處理。如何高速、可靠地將數據從數據采集模塊導入計算機是本系的統主要研究內容之一。
USB接口以其“即插即用、高數據傳輸、支持熱拔插”等優點已經成為計算機的標配接口。整個USB系統由USB主機和USB從機所組成,考慮到數據采集模塊的實際應用領域,將其設計為USB從機結構(這里計算機擔當USB主機),在深入了解USB相關通信協議及硬件驅動芯片PDIUSBD12使用的基礎上,設計S3C44B0X與其硬件接口電路,以及相關軟件驅動程序。其接口電路如圖2所示。

圖2 S3C44B0X與PDIUSBD12的電路連接圖
PDIUSBD12芯片的ALE引腳接地(始終為低電平),實現該芯片“獨立地址和數據總線配置”的設置; A0引腳和S3C44B0X的任意一個I/O口(這里為A20引腳)相連,用于對PDIUSBD12芯片的操作控制(當A20引腳為高電平,PDIUSBD12讀取的是命令字;若為低電平,表明此時讀取的是數據)[3]。PDIUSBD12的數據總線與S3C44B0X的低8位數據總線直接相連,其讀寫控制引腳也分別于S3C44B0X的nOE和nWE引腳相連,用于對PDIUSBD12芯片的數據讀寫控制。PDIUSBD12的復位引腳REST_N可與S3C44B0X的nREST引腳直接相連,可同時完成系統器件復位。
由于PDIUSBD12的 CS_N引腳與 S3C44B0X的nGCS1引腳相連,則PDIUSBD12芯片的地址范圍為: 0x02000000~0x02FFFFFF。因為PDIUSBD12的A0引腳與S3C44B0X的A20引腳相連,則PDIUSBD12使用了上述地址范圍中的兩個地址0x0210000和0x02000000。當A20為高電平(邏輯1),即“命令地址”模式,此時采用0x02100000地址用于命令的讀寫操作;當A20為低電平(邏輯0),則為“數據地址”模式,此時采用0x02000000地址用于采集數據的傳輸。由此實現了數據采集模塊中的USB硬件控制驅動層和接口控制層的操作。
PDIUSBD12可以“中斷”的方式進行操作,將PDIUSBD12的INT_N引腳與S3C44B0X的EXINT0引腳相連,則S3C44B0X通過外部中斷方式來響應PDIUSBD12的中斷請求。
1.3 S3C44B0X A/D轉換電路
S3C44B0X微處理器內部含有8路輸入(AI0∶AI7) 10位A/D轉換器(逐次逼近型),能滿足日常大多數對采樣精度、速度要求不特別高的工業應用場合,由于不再額外使用A/D器件,產品設計成本從而得以降低。其內置A/D轉換結構如圖3所示,包括8端模擬信號輸入復用器、10位逐次逼近寄存器(SAR)、自動調零比較器、時鐘發生器(MCLK)及預分頻器(PSR)等電路。通過可編程控制,A/D轉換器可以選擇睡眠模式(針對采樣速度很慢或者模擬信號變換緩慢的場合),從而降低功耗。為使A/D轉換器具備穩定電壓,通過分別在S3C44B0X的AREFT引腳(正向參考電壓)、AREFB引腳(反向參考電壓)和AVCOM引腳(模擬公共電壓)連接一個旁路電容,可使A/D轉換器具有穩定電壓供應。

圖3 S3C44B0X內置A/D轉換器

圖2中采用了單片采樣保持放大器LF198作為S3C44B0X內置A/D轉換器的信號源的前置采樣保持電路。在實際應用中,可根據信號源的數量確定LF198采樣保持電路的數量。如果信號源頻率低于100 Hz,則無需采樣保持電路,此部分電路可以省去。
2.1 嵌入式操作系統μC/OS-Ⅱ的應用
μC/OS-Ⅱ是一種性能極其優越的輕量級嵌入式操作系統,其源代碼(C語言編寫)公開、可移植性強、可裁剪、性能穩定等特點使其在國內外已經得到廣泛應用,包括電話系統、網絡設備、工業機器人、發動機控制等多個領域。
μC/OS-Ⅱ在應用于S3C44B0X之前,需要用戶利用匯編語言編寫少量應用代碼(此過程稱為移植),這樣可實現對微處理器內相關寄存器進行操作。具體而言,需要完成下述幾個文件的編寫:OS_CPU.H,包括定義微處理器堆棧數據類型、增長方向和一些與編譯器沒有關系的數據類型;OS_CPU_A.S,包括時鐘中斷函數、任務切換函數、任務首次調度函數的編寫等;OS_CPU_C.C,主要包括系統任務堆棧初始化操作函數編寫。編寫完畢,可將這3個文件作為μC/OS-Ⅱ內核的一部分連同系統任務代碼一起編譯、存儲[5]。
該數據采集模塊的應用代碼須按照μC/OS-Ⅱ的任務要求規范進行編寫,且必須根據任務重要性對任務進行等級劃分。按照優先級從高到低設計以下任務:
1)Main_Task(),主要用于操作系統μC/OS-Ⅱ的初始化設置,包括建立任務間通信所需的事件(信號量、消息隊列等)和下述系統任務;
2)USB_Task(),PDIUSBD12以中斷的方式通知系統進行USB端口數據操作,一旦中斷產生,在中斷服務程序發出信號量激活此任務完成數據傳輸;
3)Key_Task(),數據采集模塊鍵盤任務,涉及到啟動S3C44B0X的內置A/D轉換器,可以根據需要設置手動啟動或定時周期啟動;
4)AD_Task(),完成信號源數據采集并轉換;
5)LCD_Show_Task(),實時顯示包括采集數據在內的系統運行過程。
2.2 USB接口軟件設計
采用“分層”方法完成USB硬件PDIUSBD12的軟件驅動設計,表1為USB協議模型(包含層次劃分及對應的功能)。需要對“USB通信協議規范”及“PDIUSBD12結構及使用”進行深入研究,再按照USB協議規范的要求完成數據采集模塊讀、寫操作代碼的編寫(此部分代碼包含在任務USB_Task()中)。

表1 USB協議模型
PDIUSBD12芯片幾乎所有的功能均包含在USB中斷層,并對其他3層進行了控制。主要執行USB驅動芯片PDIUSBD12的初始化操作和中斷服務功能。該芯片所執行的操作主要包括在該中斷服務功能中,端點數據發送和接收控制、向USB主機發送請求命令以及端點1和端點2之間的數據傳輸。
當數據采集模塊與USB主機需要傳輸數據,PDIUSBD12向S3C44B0X產生中斷請求信號。μC/OS-Ⅱ中中斷服務子程序發出信號量激活USB_Task()任務,該任務從PDIUSBD12芯片內部的“FIFO緩沖器”讀取數據至S3C44B0X的數據存儲區,同時設置當前USB狀態。如有必要,再通過任務調度激活其他任務進行處理(如數據顯示)。圖4為中斷服務子程序的流程圖,進入中斷后首先進行中斷現場保護,再從中斷寄存器讀取數據,考慮到系統的實時性,中斷服務程序不能太長,故采取發信號量的方式激活USB_Task()任務,由之判斷引起中斷的原因并通過調用相應子程序做處理[6]。

圖4 系統中斷服務程序及數據處理任務流程圖
訪問PDIUSBD12芯片的命令接口函數主要定義在USB接口控制層,這些功能函數主要供USB協議層和USB中斷層調用。在編寫這些命令接口函數,須按照PDIUSBD12命令描述規范進行編寫,這樣方可實現對PDIUSBD12芯片的控制。
當輸入頻率為200 Hz,峰-峰值為3.3 V的正弦信號時,選擇采樣頻率為2 kHz,對輸入信號進行采樣(這樣一個周期內的采樣點為10個),利用MATLAB將所采集的數據點進行還原顯示,則所還原的圖像如圖5所示。從該圖可以看出所顯示的波形基本完整,若提高采樣頻率,則能更好地還原輸入波形。

圖5 以2 kHz采樣頻率對輸入200 Hz正弦波采樣后數據還原
采用ARM7核微處理器S3C44B0X控制PDIUSBD12芯片實現一種嵌入式數據采集模塊,并依靠嵌入式操作系統μC/OS-Ⅱ進行整體系統管理,代替傳統以8位單片機為核心的數據采集器,不僅成本低、性能穩定、功耗低,而且可以充分發揮USB接口的優勢,高速、可靠地將采集到的數據導入計算機作進一步處理。該數據模塊使用價值高,可作為基本模塊器件嵌入應用于多種數據采集傳輸場合。
[1]譚保華,王堃,熊健民.基于USB總線技術的高速數據采集卡研制[J].計算機測量與控制,2008(12):1982-1984.
[2]劉韶華,禹華鋼,鄒嵐.采用PDIUSBD12的USB接口固件程序開發[J].現代電子技術,2012,35(20):25-27.
[3]王恒,王中訓,杜思良,等.基于ARM9的USB攝像頭圖像采集壓縮及無線傳輸[J].電視技術,2011,35(3):29-31.
[4]BAO Yujun.Design of the Net data information acquisition for electric energymeter[C]//Proc.SPIE Fourth International Symposium on Precision Mechanical Measurements.Hefei:SPIE Press,2008:196-200.
[5]鮑玉軍.基于ARM與GPRS技術的SCADA系統在風光電廠中的應用[J].電子技術應用,2011,37(6):131-134.
[6]齊懷琴,王晗,張松,等.基于ARM的森林火災監測系統的設計[J].電視技術,2013,37(23):218-221.
[7]朱靜,錢敏,楊翠軍.基于USB總線接口的控制系統設計[J].通信技術,2012,45(8):109-111.
Embedded USB Data Acquisition Device Based on ARM 7-Kernel M icroprocessor
BAO Yujun1,2,GE Kangjie1,ZHAO Mengting1
(1.School of Electronic Information&Electric Engineering,Changzhou Institute of Technology,Jiangsu Changzhou 213002,China; 2.College of Engineering,Nanjing Agriculture University,Nanjing 210031,China)
To geta kind of data acquisition devicewith the requirements of low cost,high speed and reliable data-transmission which applied in industry production,a special embedded USB data acquisition device which based on ARM7-kernel Microprocessor S3C44B0X is designed after studying USB protocols,embedded operating systemμC/OS-Ⅱ and related hardware.Minimum system of S3C44B0X and its interface circuit with USB hardware controller are designed,andμC/OS-Ⅱis transplanted successfully.Depending on the inner eight ten-bit A/D converter of S3C44B0X,the embedded data acquisition device is realized.The research results indicate that this kind of device has such advantages as high reliability,low costand high data-transmission-rate.Because of its high practical value,it can be applied in many industrial fields as a basic module.
S3C44B0X;USB;data acquisition;μC/OS-Ⅱ
TN91
A
?? 京
2014-08-02
【本文獻信息】鮑玉軍,葛康杰,趙夢婷.基于ARM7內核微處理器的嵌入式USB數據采集模塊[J].電視技術,2014,38(23).
江蘇省高校自然科學基金項目(10KJD480003);江蘇省大學生實踐創新項目(201411055038)
鮑玉軍(1978—),博士,講師,主研子信息工程、嵌入式系統。