1 引言
基于PC機各種總線的步進電機或數字式伺服電機的上位控制單元,總線形式多種多樣,高速總線可以采用ISA、PCI、USB等總線技術。通常使用的是基于ISA總線、PCI總線。由于計算機主板的更新?lián)Q代,ISA插槽使用的越來越少了PCI總線的運動控制卡成了目前的主流。但是PCI總線存在一些缺陷:易受機箱內環(huán)境的影響,受計算機插槽數量的地址、中斷資源的限制而不可能掛接很多設備等。USB總線具有安裝方便、高帶寬、易擴展等優(yōu)點,其中USB2.0標準有著高達480MB/s的傳輸速率,已經逐漸成為計算機接口的主流。而且,通用串行總線USB為多點數據采集提供了很大的便利,利用USB可以實現(xiàn)比傳統(tǒng)方式更有效、更經濟、點數更多的數據采集。USB數據總線已經在各種計算機上得到普及,成為計算機的標準設備。
2 系統(tǒng)體系結構
基于USB總線的運動控制平臺及采集卡系統(tǒng)按照功能的劃分,主要包括3個方面:USB接口設計,通過USB接口實現(xiàn)PC機與單片機的通訊;電機的驅動,采用電機驅動芯片UC3717A;數據采集問題,數據采集的目的是為了監(jiān)控外界情況,步進電機的工作環(huán)境例如溫度,以及捕獲運動軌跡等,它是通過傳感部件利用傳感器監(jiān)控外界,將采集的信息作模數轉換后傳遞到單片機,由單片機送到微機,作分析、顯示。系統(tǒng)的體系結構如圖1所示。
圖1 系統(tǒng)的體系結構
系統(tǒng)的工作過程就是一個數據采集和控制步進電機運行的過程,其中的每一步都需要不同組的支持。首先,溫度和壓力參數經傳感器轉換成模擬信號,模擬信號經過A/D轉換變單片機可識別的數字信號;接著單片機將數字信號進行處理之后,就可以送往LED顯示或者發(fā)送給USB接口芯片;然后USB接口芯片在主機需要的時候,把接收到的數據經USB總發(fā)送給主機進行處理和顯示;最后將處理的結果經USB總線和單片機來控制步進電機的運行。
3系統(tǒng)的硬件電路設計
USB數據采集系統(tǒng)的硬件電路結構主要包括以下幾個部分:USB通信電路部分、數據采集電路部分、步進電機驅動。模塊的功能都是在以ATmega16為核心的硬件平臺上實現(xiàn)的。
3.1 USB通信電路的設計
USB通信電路的功能是實現(xiàn)數據采集系統(tǒng)設備端和主機端之間的通信,這一功能主要是由核心微控制器ATmega16和USB控制器件PDIUSBD12實現(xiàn)的。其中,PDIUSBD12是符合USB1.1協(xié)議的芯片,在USB通信電路中起著聯(lián)系設備和主機的橋梁的作用。微控制器ATmegal6和USB控制器PDIUSBD12之間通過8位并行總線進行通信,8位并行總線在ATmegal6端需要連接8個I/O口。PDIUSBD12片內集成了時鐘乘法PLL,晶振電路使用6MHZ的晶振和兩個2pF到68pF的電容。PDIUSBD12的信號輸出端D+/D-上要各串接一個18歐的匹配電阻。通信電路如圖2所示。
3.2 數據采集電路的設計
數據采集電路的功能就是將現(xiàn)場的溫度、壓力以及應力等數據轉換成合適的模擬信號,再把模擬信號傳送給A/D轉換電路。此模塊包括溫度采集模塊和壓力采集模塊兩部分。
溫度數據采集使用了DS18B20,它是美國Dallas公司生產的數字化溫度傳感器,世界上第一片支持“一線總線”接口的溫度傳感器,在其內部使用了在板(ON-B0ARD)專利技術。全部傳感元件及轉換電路集成在形如一只三極管的集成電路內。測量溫度范圍為-55°C~+125°C?,F(xiàn)場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統(tǒng)的抗干擾性。新一代的DS18B20體積更小、更經濟、更靈活。將采集的溫度送至ATmegal6內部的采樣保持電路,然后進行放大、A/D轉換,再經過固件程序的換算就可以得到測量溫度了。
在本系統(tǒng)中,測量壓力采用的器件是廣州森納士儀器有限公司生產的壓力變送器,其量程是0.0lMPa,輸出信號是4~20mA的電流。當壓力改變時,輸出電流也隨之發(fā)生變化,所
以在信號輸出端接一個精密電阻,然后對電阻兩端的電壓進行采樣和轉換,再經過固件程序的換算就可以得到測量壓力了。
3.3步進電機驅動電路設計
步進電機是一種將電脈沖轉化為角位移的執(zhí)行機構。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(稱為“步距角”),它的旋轉是以固定的角度一步一步運行的。步進電動機的角位移量和輸入脈沖的個數嚴格成正比,在時間上與輸入脈沖同步,可以通過控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。[!--empirenews.page--]
電機驅動電路主要由驅動芯片組成,本系統(tǒng)使用的電機驅動芯片為UC3717A。UC3717A芯片使用非常簡單,它通過3個輸入管腳(Phase、I1和I0)分別圖單片機引腳連接來接收輸入的參數,在2個輸出管腳(Aout和Bout)上與電機連接輸出相應的控制信號。由于UC3717A包含一個H橋,因此電機驅動電路有兩片UC3717A對應部分相連構成完整的驅動電路。如3微部分驅動電機驅動電路圖。
圖3 部分驅動電機驅動電路
3.4 LED顯示電路設計
如圖4所示,該系統(tǒng)的顯示是使用的靜態(tài)顯示,應用74LS164的串入并出的特點,將顯示編碼通過單片機的串口發(fā)送到74LS164上鎖存而實現(xiàn)穩(wěn)定的靜態(tài)顯示。在74LS164和數碼管之間串接1K的電阻限制電流,起到保護作用。
4系統(tǒng)的軟件設計
USB數據采集系統(tǒng)是一個多任務系統(tǒng),而且程序結構也比較復雜,為了提高開發(fā)率,增強系統(tǒng)的穩(wěn)定性,降低開發(fā)和維護成本,就需要一個嵌入式操作系統(tǒng)作為系統(tǒng)發(fā)和運行的平臺。μC/OS-Ⅱ作為一個源碼公開的免費型嵌入式實時操作系統(tǒng),其穩(wěn)定性好、可靠性高,而且μC/OS-Ⅱ還具有移植性好、可固化、可裁剪等特點,非常適合作為USB數據采集系統(tǒng)的開發(fā)平臺。
USB數據采集系統(tǒng)的軟件由三個部分組成:USB設備固件程序、主機PC上的USB設備驅動程序和主機上的客戶應用程序。系統(tǒng)軟件的組成及各部分之間的關系如圖5所示。
圖5 系統(tǒng)軟件的組成
設備固件程序按功能可以劃分為USB通信程序、單片機上的A/D轉換程序和LED顯示程序,以及單片機對步進電機驅動芯片控制程序,其中USB通信程序是整個固件程序的主要部分,其功能是實現(xiàn)USB設備枚舉和數據傳輸。USB設備枚舉是USB設備插上之后,主機與設備交換信息并自動配置的過程,枚舉成功后,USB接口與主機就可以進行通信了。
設備驅動程序是連接設備和主機應用程序的紐帶,它向上提供應用程序的訪問接口(API),向下則實現(xiàn)對具體設備的訪問和管理功能。驅動程序與設備硬件和上層用戶程序密切相關,在USB體系的中間起到信息轉換和傳遞的中介作用。在開發(fā)USB設備時,設備驅動程序的設計是一個非常重要的環(huán)節(jié),直接影響到整個設備系統(tǒng)的性能。本系統(tǒng)采用Driverworks開發(fā)WDM型USB設備驅動程序
應用程序的主要功能是在設備驅動程序中查找設備,與設備交換數據,并將設備發(fā)送來的數據進行處理和顯示。應用程序和驅動程序的通信是通過訪問應用程序接口(API)函數實現(xiàn)的,所以應用程序的開發(fā)必須在能訪問API函數的平臺上進行。Microsoft公司提供的Visual Studio .NET是一種功能強大的支持API函數的編程工具,本設計的主機應用程序就是以.NET為平臺進行開發(fā)的,其功能主要包括查找USB設備,與USB設備交換數據和動態(tài)顯示數據曲線。
5 總結
本文的創(chuàng)新點是改變了傳統(tǒng)的用微機PCI、ISA、串并行口做通訊口,改用高速的USB接口作為通訊口,有利于速度的提高,也方便了使用及攜帶,為以后的改進和擴展提供了余地;其次,將數據采集功能集合到控制卡里,也是本文的一個特點:電機運動過程中,為了監(jiān)控驅動器的工作環(huán)境,需要采集溫度數據;同時將運動軌跡的有關數據采集進來,作為插補和調整的依據,并且將輸出電機的運動命令和及時傳回電機軌跡狀態(tài)相結合,形成了控制平臺和數據采集為一體的模塊,數據采集的過程是個實時的過程,是在電機運動中同步完成的;最后本系統(tǒng)是開放性的實時系統(tǒng)。該項目實施半年以來,創(chuàng)造經濟效益60多萬元。