態(tài)。
目前usb設(shè)備的發(fā)主要體現(xiàn)在便攜式輔助存儲(chǔ)器設(shè)計(jì)如u盤及數(shù)碼相機(jī)等的擴(kuò)展存儲(chǔ)器,一般僅僅局限于數(shù)據(jù)的采集,而忽略了客戶端軟件(應(yīng)用程序)的設(shè)計(jì),且數(shù)據(jù)采集速度較低u2mbit/s),沒(méi)有真正實(shí)現(xiàn)上下位機(jī)的數(shù)據(jù)互相通信。在發(fā)過(guò)程中一般采用把(sb接口芯片與主控制器集成的方法,此類產(chǎn)品通用性較差,價(jià)格較貴,不能靈活滿足實(shí)際配置要求。因此,采用philips公司的usb接口芯片isp1581,將系統(tǒng)的控制部分做成一個(gè)usb設(shè)備,既滿足了系統(tǒng)的需要,又增加了系統(tǒng)的靈活性。
2控制器的硬件設(shè)計(jì)系統(tǒng)硬件結(jié)構(gòu)圖為整個(gè)系統(tǒng)的硬件結(jié)構(gòu)圖。主要有主控制器p89c668,usb接口芯片isp1581,驅(qū)動(dòng)芯片ir2110等。系統(tǒng)中pc機(jī)完成參數(shù)設(shè)定、數(shù)據(jù)采集及處理的功能。微控制器p89c668與pc機(jī)完成usb通信,并實(shí)現(xiàn)對(duì)超聲電機(jī)的控制。usb接口的采用,實(shí)現(xiàn)了運(yùn)動(dòng)控制和pc機(jī)的高速數(shù)據(jù)傳輸。利用光電編碼器進(jìn)行速度反饋,實(shí)現(xiàn)閉環(huán)控制。
p89c668單片機(jī)內(nèi)帶64kbflash存儲(chǔ)器,可以方便調(diào)試工作,該存儲(chǔ)器既可并行編程也可以串行在系統(tǒng)編程(isp)。設(shè)計(jì)時(shí)通過(guò)pc機(jī)的串口,將調(diào)試好的程序用編程器固化在flash中,這個(gè)過(guò)程稱為固件編程。p89c668新增特性使其成為一個(gè)功能強(qiáng)大的單片機(jī),它有5個(gè)16位捕捉/比較模塊和定時(shí)器連在一起,每個(gè)模塊可編程在脈沖寬度調(diào)制模式,且每個(gè)模塊的占空比單獨(dú)可變,因此pwm的輸出可滿足可調(diào)的電機(jī)控制信號(hào)的需要。
1sp1581是philips公司推出的一款高性價(jià)比的usb2.0接口芯片。它支持高速(480mbit/s)操作,又支持全速(12mbit/s)操作。內(nèi)部集成有串行接口引擎(sie)、pie、8kb的fffo存儲(chǔ)器、數(shù)據(jù)收發(fā)器、pll的12mhz晶體振蕩器和3.3v的電壓調(diào)整器。同時(shí),可通過(guò)軟件控制與usb總線的連接(softconnect),isp1581內(nèi)部具有上電復(fù)位電路,支持3.3v和5v二種電源工作方式。isp1581沒(méi)有內(nèi)嵌mcu,這樣可根據(jù)不同系統(tǒng)需求,搭配不同的mcu,提高了系統(tǒng)的靈活性。在本系統(tǒng)中isp1581與mcu的通信是通過(guò)一個(gè)高速的通用并行接口pl,p3實(shí)現(xiàn)。這些高速的微控制器接口極大地提高了系統(tǒng)的信息吞吐量,也解決了usb1.1速度低的問(wèn)題。在設(shè)計(jì)時(shí)選用了控制傳輸、中斷傳輸和批量傳輸。
微處理器接口類型。isp1581內(nèi)部有兩種總線結(jié)構(gòu)配置,由于p89c668為8位,此處選用斷開(kāi)總線工作模式,此時(shí)ad作數(shù)據(jù)/地址復(fù)用線,data僅作dma數(shù)據(jù)總線。
ir2110是一種性能比較優(yōu)良的驅(qū)動(dòng)集成電路,具有獨(dú)立的低端和高端的輸入通道;高端懸浮自舉電源的設(shè)計(jì);工作頻率高,可達(dá)500khz;輸出電源端(功率器件的柵極驅(qū)動(dòng)電壓)電壓范圍1020v;邏輯電源電壓515v,可方便地與ttl,cmos電平相匹配;兼有光耦隔離(體積小)和電磁隔離(速度快)的優(yōu)點(diǎn),可以使電機(jī)驅(qū)動(dòng)電路更加緊湊。
3控制器的軟件設(shè)計(jì)系統(tǒng)軟件部分由固件編程、計(jì)算機(jī)端設(shè)備驅(qū)動(dòng)和應(yīng)用程序三部分組成。
3.1固件程序設(shè)計(jì)固件編程是整個(gè)usb數(shù)據(jù)傳輸系統(tǒng)中設(shè)備程序設(shè)計(jì)的重要部分,它直接影響著usb設(shè)備的數(shù)據(jù)傳輸速度。編程時(shí)采用模塊化思想,每個(gè)模塊實(shí)現(xiàn)一定功能,編程工具采用keil公司的c51開(kāi)發(fā)軟件keiluvision2,固件程序主要分為以下幾塊:initc負(fù)責(zé)初始化單片機(jī)和所有的外圍電路;main.c啟動(dòng)設(shè)備和系統(tǒng)的工作,負(fù)責(zé)跟蹤usb事件,當(dāng)事件發(fā)生時(shí)引導(dǎo)執(zhí)行相應(yīng)程序;1srx是中斷服務(wù)程序,對(duì)中斷進(jìn)行判定并將事件信息傳遞給其它的程序,這里可視為后臺(tái)處理,而mam.c相當(dāng)于前臺(tái)處理,當(dāng)前臺(tái)檢測(cè)到狀態(tài)變化就跳到相應(yīng)地方進(jìn)行相關(guān)程序的處理;vender.c主要是廠商定義命令,處理廠商請(qǐng)求;chap9.c包含主要的usb協(xié)議,在主機(jī)和設(shè)備之間建立一個(gè)基本連接。
固件主循環(huán)程序流程圖isp1581中斷服務(wù)程序流程圖值得注意的是:微控制器在上電后完成所需要的初始化工作后,通過(guò)設(shè)置isp1581方式寄存器中的軟件連接位(softct)可使外設(shè)連接到usb總線上。主機(jī)檢測(cè)到有設(shè)備連接后會(huì)進(jìn)行總線復(fù)位,在此期間,isp1581將發(fā)送高速(hs)模式檢測(cè)信號(hào)來(lái)判斷主控制器支持的是usb2.0還是usb1.1規(guī)范,若接收到一個(gè)高速(hs)握手信號(hào),則表明有一個(gè)hs主機(jī)與總線相連,此此isp158i將轉(zhuǎn)換到高速(hs)狀態(tài),否則仍工作在全速(fs)狀態(tài)。主循環(huán)程序流程如,中斷服務(wù)程序如。
3.2設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)驅(qū)動(dòng)程序是連接應(yīng)用程序、硬件和操作系統(tǒng)的橋梁。驅(qū)動(dòng)程序要解決設(shè)備初始化、空間配置、端口操作、中斷處理、內(nèi)存分配和與應(yīng)用程序間通信的問(wèn)題。usb設(shè)備驅(qū)動(dòng)程序包括函數(shù)驅(qū)動(dòng)程序和總線驅(qū)動(dòng)程序兩部分,這兩部分之間是通過(guò)i/o管理器創(chuàng)建和i/o請(qǐng)求信息包來(lái)進(jìn)行通信的。在win32系統(tǒng)中,計(jì)算機(jī)把每一個(gè)設(shè)備都抽象成文件,對(duì)設(shè)備的操作也就是對(duì)文件的操作。
3.3應(yīng)用程序設(shè)計(jì)應(yīng)用程序采用microsoft的visualc++6.0編寫,usb的客戶應(yīng)用程序?qū)嶋H上是對(duì)客戶端設(shè)備映像的操作,在編寫的easyisp1581ex動(dòng)態(tài)庫(kù)中,提供了對(duì)isp1581所有端點(diǎn)的接口函數(shù),通過(guò)調(diào)用這些函數(shù),不必了解復(fù)雜的usb協(xié)議也可快速完成usb應(yīng)用程序開(kāi)發(fā)。其中主要有:從在軟件編程中需要注意以下幾點(diǎn):一是isp1581的8kbfifo是所有端點(diǎn)共享的,所以在設(shè)定各個(gè)端點(diǎn)傳輸包大小時(shí),其總和不能超過(guò)8kb;二是在調(diào)試時(shí),可根據(jù)bbbbbbs對(duì)usb設(shè)備的枚舉順序進(jìn)行程序調(diào)試;第三,為做到與usb1.1兼容,在全速狀態(tài)下響應(yīng)主機(jī)標(biāo)準(zhǔn)請(qǐng)求時(shí),需要發(fā)送全速描述符。
4結(jié)束語(yǔ)該系統(tǒng)充分利用了usb總線的優(yōu)越性,突破了控制系統(tǒng)與pc機(jī)之間通過(guò)以rs-232為基礎(chǔ)的異步串行通信方式,較好地解決了通過(guò)pc機(jī)usb口與底層控制系統(tǒng)接口和通信問(wèn)題以及日益增加的pc外設(shè)與有限主板插槽和端口之間的矛盾,作為一種高速總線接口,usb適用于多種設(shè)備,可以預(yù)見(jiàn)在以后的工業(yè)控制和應(yīng)用中,usb將具有更廣泛的應(yīng)用前景。