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