基于SSI208接口模塊的光電 編碼器數(shù)據(jù)采集設計
O 引言
SSI (Synchronous Serial Interface,即同步串行接口)以其傳輸速度快、連線簡單、抗干擾能力強等優(yōu)點,在光電編碼器上得到了越來越廣泛的應用。然而單片機、DSP、PCI04、工控機等領域常用的控制器一般不提供SSI接口,SSI光電編碼器供應商一般也不提供接口轉(zhuǎn)換器,這些因素在一定程度上限制了SSI光電編碼器的應用。為此,本文給出了兩種SSI接口數(shù)據(jù)采集的低成本解決方案:其一是基于SSI并行接口模塊SSI208P的并行高速接口方案,其二是基于SSI串行接口模塊SSI208S的通用串行異步接口(UART)數(shù)據(jù)采集方案,這兩種方案可分別滿足不同應用場合的需求。
1 SSI編碼器高速并行數(shù)據(jù)采集方案
1.1 SSl208P模塊簡介
由中國兵器工業(yè)第二零八研究所基于CPLD研制的SSl208P模塊,其內(nèi)部集成有SSI同步時鐘發(fā)生器、脈沖計數(shù)器、數(shù)據(jù)串并轉(zhuǎn)換、接口控制邏輯、輸出控制以及收發(fā)驅(qū)動器(TTL—RS422電平轉(zhuǎn)換)等功能單元,圖l所示是其功能框圖。
SSI208P模塊已完成SSI接口與并口的轉(zhuǎn)換和封裝,因此,讀取SSI接口數(shù)據(jù)就變得類似于對A/D、D/A或存儲器讀取數(shù)據(jù)的操作,非常簡單。SSI208P模塊能將數(shù)據(jù)由格雷碼格式轉(zhuǎn)換成BCD碼格式,其通信速率可配置為250 kHz、500 kHz、1MHz和2 MHz,當通信速率配置為2MHz時,對于16位精度的編碼器,其系統(tǒng)數(shù)據(jù)更新率不低于100 kHz,故可滿足高速伺服控制系統(tǒng)的需求。
1.2 SSI208P的管腳配置
SSI208P接口模塊采用DIP28封裝,其管腳排列如圖2所示。各引腳的功能如下:
CLKMDl,CLKMD0:SSI時鐘頻率設置端口,其中00為250 kHz,0l為500 kHz,10為1 MHz,11為2MHz;
START:啟動指令,上升沿啟動轉(zhuǎn)換;
END:轉(zhuǎn)換結(jié)束狀態(tài)查詢,低為轉(zhuǎn)換結(jié)束;
CS:編碼器數(shù)據(jù)輸出選擇端;
GRAY:數(shù)據(jù)格式轉(zhuǎn)換選擇,l是將格雷碼轉(zhuǎn)換為BCD碼輸出。0為BCD碼輸出;
D0~D7:8位數(shù)據(jù)輸出并口;
A1,A0:輸出數(shù)據(jù)高低位選擇端,00為最低八位,11為最高八位;
CLK+,CLK一:SSI編碼器時鐘信號;
DATA+,DATA一:SSI編碼器數(shù)據(jù)信號;
VCC,GND:電源,電源地;
NC:空腳。
1.3 SSI208P控制時序
SSI208P的控制時序如圖3所示。一般可在START上升沿啟動一次SSI編碼器數(shù)據(jù)收發(fā)過程。START電平升高后的125ns內(nèi),SSI208P模塊開始向編碼器發(fā)送一幀同步時鐘脈沖信號,脈沖的個數(shù)由編碼器的精度決定,同時轉(zhuǎn)換結(jié)束管腳END變高。發(fā)送脈沖期間,管腳END保持高電平,轉(zhuǎn)換結(jié)束,END管腳電平變低后,即可從DO~D7并行讀取編碼器數(shù)據(jù),每次讀取八位,并由Al、AO控制輸出數(shù)據(jù)的高低位,00表示讀取最低八位、11表示讀取最高八位。如對16位編碼器,只需讀取兩次(A1、AO分別為00、01),最多可以讀取32位數(shù)據(jù)。編碼器并行數(shù)據(jù)讀取結(jié)束后,應將START管腳置低,以準備啟動下一次轉(zhuǎn)換。
1.4 基于SSI208P的接口設計
采用SSI208P模塊可以大大簡化單片機、DSP、PCI04等控制器擴展SSI編碼器接口的軟硬件設計。下面給出一種基于DSP處理器TMS320F2812的典型應用。圖4所示為DSP處理器TMS320F2812與SSI208P模塊的硬件連接原理圖。本編碼器為單圈16位絕對式角度編碼器,編碼器輸出數(shù)據(jù)格式為格雷碼,SSI208P模塊的八位數(shù)據(jù)總線與TMS320F2812的低八位數(shù)據(jù)線相連。由于使用的編碼器為16位,所以僅需一位地址線即可區(qū)分編碼器數(shù)據(jù)的高八位和低八位,可使用外部地址片選管腳/XZCS67作為SSI208P的外部片選信號,并使用通用IO口GPIOB4控制SSI208P模塊啟動,同時使用通用IO口GPIOB5進行SSI208P模塊轉(zhuǎn)換結(jié)束狀態(tài)查詢。設計時應在CLKMDO、CLKMDl接上拉電阻,并將SSI208P模塊同步時鐘頻率配置為2MHz。將GRAY管腳拉高,SSI208P模塊即可將編碼器輸出的格雷碼數(shù)據(jù)轉(zhuǎn)換成BCD碼。
由SSI208P模塊的控制時序圖可以看出,SSI208P模塊的啟動轉(zhuǎn)換控制和數(shù)據(jù)讀取操作比較簡單,其軟件流程如圖5所示。
對應于圖5的硬件設計,DSP處理器TMS320F2812的相應軟件代碼如下:
2 SSI編碼器通用異步串行采集方案
2.1 SSI208S模塊簡介
使用SSI208S模塊可以將SSI同步串行數(shù)據(jù)轉(zhuǎn)換成通用異步串行數(shù)據(jù)(可采用RS一232、RS一422或RS一485方式),工控領域常用的PC機、工控機、DSP、單片機等控制系統(tǒng)上一般都配備有通用異步串行接口,因此,使用SSI208S模塊可以方便地實現(xiàn)SSI編碼器與這些控制系統(tǒng)進行連接。
2.2 SSI208S管腳配置
SSI208S接口轉(zhuǎn)換模塊采用DIP24封裝,其管腳排列如圖6所示。各引腳的功能如下:
VCC,GND:電源,電源地;
CLKMDl,CLKMD0:同SSI208P;
232TX:RS一232數(shù)據(jù)發(fā)送;
232RX:RS一232數(shù)據(jù)接收;
MODE:工作模式設定端口;
A1、A0:地址設定端;
GRAY:數(shù)據(jù)格式轉(zhuǎn)換選擇,1是將格雷碼轉(zhuǎn)換為BCD碼輸出,0是BCD碼輸出;
CLK+,CLK一:SSI編碼器時鐘信號;
DATA+,DATA一:SSI編碼器數(shù)據(jù)信號;
CAP:接去耦電容;
NC:空腳。
管腳MODE可用于設定SSI208S模塊的工作方式:0一主動模式,1一問詢模式。在主動工作模式下,模塊定時主動向主機發(fā)送位置信息;在問詢工作模式下,主機先向模塊發(fā)送問詢信息(地址信息),然后SSI208S模塊向主機返回位置信息。地址設定管腳A1、A0可以設定模塊的地址信息,使異步串行總線上可以連接多個SSI編碼器,O一0至1一1分別對應地址0至3。
2.3 SSI208S的應用
采用SSI208S模塊同樣可以大大簡化單片機、DSP、PCI04等控制器擴展SSI編碼器接口的軟硬件設計。下面給出工控機與SSI208S模塊的應用實例,其硬件連接原理如圖7所示,其中編碼器精度為16位,采用BCD碼輸出,通用異步串行通信速率為115200bps,編碼器SSI的通信速率設置為250 kHz,并采用問詢工作模式,編碼器地址設置為0x01。
工控機向SSI模塊發(fā)送地址信息0x01后,SSI模塊將返回0xAA 0x01 0x23 0x34 0x57。其中0xAA為數(shù)據(jù)包起始標志,0xol為編碼器位置信息,0x23和0x34為編碼器位置信息,0x57為校驗信息。圖8為示波器捕捉的查詢指令和SSI模塊返回的位置指令波形圖。由圖可知,工控機發(fā)出查詢指令后0.1ms,SSI模塊將向主機發(fā)送編碼器位置信息,其中包含編碼器的同步串行通信時間。設置更高的通信速率可縮短該滯后時間。查詢方式工作模式下,編碼器的數(shù)據(jù)更新周期約為0.6ms,可見,其數(shù)據(jù)更新率大于1600 Hz,可以滿足高速伺服控制系統(tǒng)的需求。
3 結(jié)束語
本文提供了兩種SSI編碼器高速數(shù)據(jù)采集的實現(xiàn)方案,并提供了詳細的硬件原理圖和軟件代碼。目前,這兩種模塊均已產(chǎn)品化,成功運用于某車載系統(tǒng)的火控分系統(tǒng)中,并在運行中十分穩(wěn)定可靠。