摘要:同步串行接口(SSI)具有速度快、連線簡單、抗干擾能力強等優(yōu)點,在工業(yè)控制等領(lǐng)域得到了越來越廣泛的應用。一般的工控機上不提供SSI接口,市場上的SSI接口擴展卡很少且價格昂貴。介紹了SSI并行接口模塊SSI208P,基于數(shù)字量輸入/輸出擴展卡和SSI208P,給出了一種工控機高速采集多通道SSI光電編碼器數(shù)據(jù)的低成本實現(xiàn)方案,詳細闡述了硬件和軟件設(shè)計方法。
關(guān)鍵詞:SSI;光電編碼器;工控機;數(shù)據(jù)采集
SSI(Synchmnous Serial Interface)即同步串行接口,具有傳輸速度快、連線簡單、抗干擾能力強等優(yōu)點,在光電編碼器等各種傳感器上得到了廣泛的應用。工控機即工業(yè)控制計算機,具有計算機CPU、硬盤、內(nèi)存、外設(shè)及接口,并有操作系統(tǒng)、控制網(wǎng)絡(luò)和協(xié)議、計算能力、友好的人機界面,工控機以低成本、高性能、高可靠性等優(yōu)勢成為工業(yè)控制等領(lǐng)域的主流計算機。
工控機一般不提供SSI接口,很難直接采集SSI接口的編碼器等傳感器數(shù)據(jù)。SSI接口轉(zhuǎn)換器多將SSI數(shù)據(jù)轉(zhuǎn)換成異步串行總線等低速現(xiàn)場總線,這大大限制了數(shù)據(jù)采集的實時性;市場上也有國外提供PCI或ISA接口的SSI接口卡,但價格昂貴且驅(qū)動程序較為復雜。工控機上多配備數(shù)字量輸入/輸出卡。本文采用數(shù)字量輸入/輸出卡控制SSI并行接口模塊SSI208P,實現(xiàn)了一種SSI接口的低成本、高速數(shù)據(jù)采集方法。
1 SSI208P模塊介紹
SSI208P模塊可將SSI數(shù)據(jù)高速轉(zhuǎn)換成并行數(shù)據(jù),采用DIP28封裝,內(nèi)部集成了SSI同步時鐘發(fā)生模塊、數(shù)據(jù)串并轉(zhuǎn)換模塊、接口控制邏輯模塊、輸出控制模塊以及收發(fā)驅(qū)動(TTL-RS422電平轉(zhuǎn)換)模塊等功能模塊,其功能框圖如圖1所示。
采用SSI208P模塊對SSI接口數(shù)據(jù)的讀取操作就變得類似于對A/D、D/A或存儲器讀取數(shù)據(jù)的操作,非常簡單。SSI208P模塊還能將格雷碼轉(zhuǎn)換成二進制碼。通信速率可配置,當通信速率配置為2 MHz時,對于16位精度的編碼器,系統(tǒng)數(shù)據(jù)更新率不低于100 kHz,可以滿足高速伺服控制系統(tǒng)的需求。
SSI208P控制時序如圖2所示。CONVST上升沿啟動一次SSI編碼器數(shù)據(jù)收發(fā)過程。CONVST電平升高后,125 ns內(nèi)SSI208P模塊開始向編碼器發(fā)送一幀同步時鐘脈沖信號,脈沖的個數(shù)由編碼器的精度決定,同時轉(zhuǎn)換結(jié)束管腳變高。發(fā)送脈沖期間管腳保持高電平狀態(tài),轉(zhuǎn)換結(jié)束管腳電平變低后,即可從D0~D7并行讀取編碼器數(shù)據(jù),每次讀取八位,由A1、A0控制輸出數(shù)據(jù)高低位,0表示讀取最低八位、1表示讀取最高八位,例如對于16位編碼器只需瀆取兩次(A1、A0分別為00、01),最多可以讀取32位數(shù)據(jù)。編碼器并行數(shù)據(jù)讀取結(jié)束后將CONVST管腳置低,準備啟動下一次轉(zhuǎn)換。
2 硬件設(shè)計
數(shù)字量輸入/輸出卡與SSI并行接口模塊SSI208P及SSI光電編碼器之間的硬件連接原理圖如圖3所示。圖中數(shù)字量輸入/輸出卡擴展了四路SSI編碼器。數(shù)字量輸入/輸出接口由研華公司的多功能PCI數(shù)據(jù)采集卡PCI-1716提供,該采集卡除了提供16路模數(shù)轉(zhuǎn)換通道和2路數(shù)模轉(zhuǎn)換通道外,還提供了16路數(shù)字量輸入和16路數(shù)字量輸出通道。四通道光電編碼器為16位格雷碼輸出格式。接口板上采用了四片SSI208P芯片,SSI時鐘速率和編碼器數(shù)據(jù)格式的設(shè)置都由接口板完成。PCI-1716的數(shù)字量輸入端口的信號電氣特性為:輸入邏輯高電平:2.0~5.25 V;輸入邏輯低電平:0.0~0.80V;輸出邏輯高電平:2.4 V(最小);輸出邏輯低電平:0.4 V(最大)。參考SSI208P管腳的電氣特性可知,PCI-1716和SSI208P的管腳可以直接連接。
采用PCI-1716的輸入端口D10~D17連接四片SSI208P的數(shù)據(jù)線D0-D7,由于SSI208P在沒有片選信號的情況下數(shù)據(jù)線是高阻態(tài)的,因此數(shù)據(jù)線可以共用。PCI-1716的輸出端口D01連接四片SSI208P的啟動轉(zhuǎn)換管腳START,可以同時控制四路SSI編碼器。PCI-1716的輸出端口DO0連接四片SSI208P的地址選擇管腳A0,因編碼器為16位,A1接地。PCI-1716的四個輸出D02-D05分別連接四片SSI208P的片選管腳CS。IO卡的四個輸入D19-DI11分別連接四片SSI208P的轉(zhuǎn)換結(jié)束指示管腳/END。使用PCI-1716的18個IO口就可以實現(xiàn)四路光電編碼器的時序控制和數(shù)據(jù)采集。
3 軟件設(shè)計
編程采用Borland C++ Builder,調(diào)用PCI-1716的驅(qū)動程序操作各輸入輸出端口,在各輸入輸出端口上產(chǎn)生滿足SSI208P的控制邏輯即可啟動轉(zhuǎn)換,采集數(shù)據(jù)。由圖2可以看出SSI208P模塊的啟動轉(zhuǎn)換控制和數(shù)據(jù)讀取操作比較簡單,軟件流程如圖4所示。
相應的軟件代碼如下:
4 結(jié)束語
本文基于SSI并行接口模塊SSI208P和數(shù)字量輸入/輸出接口擴展卡,給出了一種工控機高速采集多通道SSI光電編碼器數(shù)據(jù)的低成本實現(xiàn)方案。試驗證明,在同步時鐘設(shè)置為500 kHz的情況下,轉(zhuǎn)換讀取四路16位SSI光電編碼器的時間小于100μs,可用于實時性要求很高的應用場合。該方案已經(jīng)成功運用于某車載武器系統(tǒng)的火控分系統(tǒng)中,運行穩(wěn)定可靠。