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