此設計是基于USB-FIFO并行接口模塊DLP-USB245。此模塊提供8位雙向數據總線和控制信號(WR,,TXE),可用于控制PC和采用USB協議的任何外電路之間的數據流。
采用此模塊不需要處理USB接口的麻煩復雜的事情。此單元與驅動器軟件一起通過任何高級語言能容易和快速控制模塊的功能,而不用過多地操心USB協議。
USB(通用串行總線)有很多優點,廣泛應用于總線應用中。本文所示的4步進電機用的USB基控制器就是一個應用實例,此控制器是用便宜的現成元件構建的。此電路不需要微控制器DSP。此電路用簡單的邏輯電路和應用軟件來控制步進電機的選擇、順時針或反時鐘運行和步大小(全步,半步或微步)。
此控制器電路(圖1)其他電路包括通用數字元件:8D觸發器(74LS273)、反相器(7416)、3-8譯碼器(74LS138)、達林頓陣列驅動器(ULN2003)。外部5V電源連接到USB-FIFO模塊的引腳3、10、11。
電路工作如下:當PC沒有數據送到USB-FIFO時,USB-FIFO發送緩沖器是空的,而保持邏輯1。此使和到8D觸發器(IC2)的CLK為邏輯。所以IC2的輸出保持不受影響。然而,假若PC送1字節到USB-FIFO接收緩沖器,則拉到低態,自動指示數據的最低1個字節有效。
經過短延遲后,量位和CLK到邏輯1,發送緩沖器的數據字節輸出(DO~D7)鎖存在IC2輸出。一旦數據傳輸完成而且假若發送緩沖器變空,則返回到邏輯1。這意味著無更多數據可用。依次置位到低態,可進一步進行數據轉輸。
鎖存數據的低4位(IC2的Q0~Q3)驅動其他4個74LS2738D觸發器(IC4~IC7),而輸出Q4和Q5控制3-8譯碼器(IC3)。反相之后,譯碼器輸出(A’,B’,C’,D’)做為IC4~IC7的時鐘。達林頓陣列驅動器(IC8~IC7)升高IC4~IC7的輸出,用于驅動步進電機線圈。因此,寫1個正確的數據字節到IC1,PC可以選擇4個步進電機中的一個電機并供電給所希望的線圖。
例如,PC送OXOA到USB-FIFO,則選擇步進電機1,在圖形L1L2L3L4=1010下激勵其線圖。為了使步進電機前進一步,PC送OXO9做為下1個字節;反之,為了反向運行步進電機,PC送OXO6。
表1列出步進電機控制(全步)字節數值。采用適當的變化,可以使電機工作在半步和微步狀態。寫字節的速率,即連續數據寫之間的時間控制步進電機的速度。
表1步進電機控制字節值
除電流升高器和USB-FIFO變換器外,電路中的其他元件可以在1個CPLD/FPGA中實現。電機控制軟件可以用C,VB或圖像程序(如LabWIEW)進行開發。假若用IC1提供的VCP(VirtualCOMPort)驅動器軟件(可免費下載),應用程序將視USB步進電機控制器模塊做為另1個COM端口。但是,忽略設置波特率的命令,以最快的速率發送數據,而不管應用波特率設置。也可以用Windows提供的D2XXDirectDrivers,這樣可以直接控制每個操作,如FIFO寫等。
更多直線步進電機參數知識,請咨詢覃工QQ:176340526