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