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