技術頻道

      一種SSI接口光電編碼器數據并行采集設計方法

      概述
      SSI208P接口轉換模塊主要應用于同步串行接口(SSI)光電編碼器高速數據采集系統的板級開發。SSI208P模塊將同步串行接口數據轉換成并行接口數據,內部集成了SSI同步時鐘發生器、脈沖計數器、數據串并轉換、接口控制邏輯、輸出控制以及收發驅動器(TTL-RS422電平轉換)等功能單元,用戶無須了解SSI數據格式,該模塊自動將SSI數據轉換成8位并行數據,簡化了SSI編碼器與DSP、單片機、PC104等控制器的接口。
      應用方向
      伺服控制
      工業控制

      產品特性

      單3.3V供電,工作電流小于100mA;
      通信速率可配置,最高達2MHz;
      28腳雙列直插封裝;尺寸:25.4*25.4*6(mm);
      8位數據總線,可接8~32位編碼器;
      高數據更新率,如16位數據更新率大于100KHz;
      內部時鐘,固定時序;
      內置422差分驅動。

      1.產品介紹
      SSI208P是針對同步串行接口(SSI)編碼器開發的高速數據采集模塊。內部集成了SSI同步時鐘發生器、脈沖計數器、數據串并轉換、接口控制邏輯、輸出控制以及收發驅動器(TTL-RS422電平轉換)等功能單元,其功能框圖如圖1所示。

      圖1 SSI208P功能框圖

      該模塊具有內部時鐘,能自動將SSI數據轉換成并行數據,對SSI接口數據的讀取操作就類似于對A/D、D/A或存儲器讀取數據的操作一樣方便。SSI208P模塊通信速率可配置為250KHz、500KHz、1MHz、2MHz,當通信速率配置為2MHz時,對于16位精度的編碼器,系統數據更新率不低于100KHz。此外,該模塊對采集的數據長度(編碼器精度)可以進行配置,最高可以采集32位數據,分4次輸出,該模塊可以滿足高精度高速伺服控制系統的需求。

      2.SSI208P外形

      2.1 SSI208P實物圖

      圖2 SSI208P實物圖

      2.2 SSI208P外形尺寸
      俯視圖 側視圖

      圖3 SSI208P外形尺寸

      3.管腳定義及特性參數

      3.1 SSI208P引腳定義

      編號

      引腳名稱

      方向

      引腳含義

      備注

      1-4

      D0-D3

      輸出

      數據輸出

      接處理器數據線

      5

      NC

      空管腳

      使用時懸空

      6-9

      D4-D7

      輸出

      數據輸出

      接處理器數據線

      10-12

      NC

      空管腳

      使用時懸空

      13,14

      A0,A1

      輸入

      數據高低字節選擇

      A1A0:

      00-最低八位,01-次低八位,

      10-次高八位,11-最高八位

      15

      DATA+

      輸入

      編碼器數據線+

      16

      DATA-

      輸入

      編碼器數據線-

      17

      CLK-

      輸出

      編碼器同步時鐘-

      18

      CLK+

      輸出

      編碼器同步時鐘+

      19

      NC

      空管腳

      使用時懸空

      20

      GRAY

      輸入

      格雷碼轉換控制

      0-原碼輸出

      1-將格雷碼轉換為BCD碼

      21

      /CS

      輸入

      編碼器數據輸出選擇

      0:輸出選擇

      22

      /END

      輸出

      轉換結束

      1:正在轉換,0:轉換結束

      23

      START

      輸入

      啟動轉換

      上升沿啟動轉換

      24

      NC

      空管腳

      使用時懸空

      25

      GND

      電源地

      26

      CLKMD1

      輸入

      同步時鐘設置

      00: 250KHz 01: 500KHz

      10: 1MHz 11: 2MHz

      27

      CLKMD0

      輸入

      同步時鐘設置

      28

      VCC

      電源

      3.3V供電

      3.2 SSI208P特性參數

      電源VCC

      最小值3.0V,典型值:3.3V,最大值:3.6V

      功耗

      靜態電流<70mA,最大電流<100mA

      溫度范圍

      -40~85℃

      I/O電氣特性

      輸出高電壓(VOH)

      最小值VCC-0.4V

      輸出低電壓(VOL)

      最大值0.8V

      輸入高電平(VIH)

      最小值2V,能承受5V輸入

      輸入低電平(VIL)

      最大值0.8V

      4. SSI208P控制時序

      SSI208P控制時序如圖4所示。START上升沿啟動一次SSI編碼器數據收發過程,START電平升高后,125ns內SSI208P模塊開始向編碼器發送一幀同步時鐘脈沖信號,同時轉換結束管腳/END變高。發送脈沖期間管腳/END保持高電平狀態,轉換結束/END管腳電平變低后,即可從D0~D7并行讀取編碼器數據,每次讀取八位,由A1A0控制輸出數據高低位,0低八位、1表示讀取高八位,對于16位編碼器需讀取兩次。編碼器并行數據讀取結束后將START管腳置低,準備啟動下一次轉換。

      圖4 SSI208P控制時序

      5.基于SSI208P模塊的應用實例

      5.1 TMS320F2812接口實例

      采用SSI208P模塊可以大大簡化單片機、DSPPC104等控制器擴展SSI編碼器接口的軟硬件設計,下面給出一種基于DSP處理器TMS320F2812的典型應用。 DSP處理器TMS320F2812SSI208P模塊的硬件連接原理圖如圖5所示。

      圖5 TMS320F2812與SSI208P連接硬件設計原理圖

      上例中編碼器為單圈16位絕對式角度編碼器,編碼器輸出數據形式為格雷碼;SSI208P模塊的八位數據總線與TMS320F2812的低八位數據線相連;因使用的編碼器為16位,所以僅需一位地址線即可區分編碼器數據高八位和低八位;使用外部地址片選管腳/XZCS67作為SSI208P的外部片選信號;使用通用IO口GPIOB4控制SSI208P模塊啟動;使用通用IO口GPIOB5進行SSI208P模塊轉換結束狀態查詢; CLKMD0、CLKMD1接上拉電阻拉高,將SSI208P模塊同步時鐘頻率配置為2MHz;將GRAY管腳拉高, SSI208P模塊將編碼器輸出的格雷碼數據轉換成BCD碼。其它控制器的硬件電路依次類推。

      由SSI208P模塊控制時序圖可以看出SSI208P模塊的啟動轉換控制和數據讀取操作比較簡單,軟件流程如圖6所示。

      圖6 SSI208P軟件流程圖

      對應圖5中硬件設計,DSP處理器TMS320F2812相應的軟件代碼如下所示:

      #include "DSP28_Device.h"

      #define SSIL *(int *)0x00100000 //SSI模塊低八位地址

      #define SSIH *(int *)0x00100001 // SSI模塊高八位地址

      int SSI_VAL; //編碼器數據

      main()

      {

      ……

      EALLOW;

      //配置GPIO4、GPIO5引腳為IO引腳

      GpioMuxRegs.GPBMUX.bit.GPIOB4=0;

      GpioMuxRegs.GPBMUX.bit.GPIOB5=0;

      GpioMuxRegs.GPBDIR.bit.GPIOB4=1; //GPIOB4配置為輸出

      GpioMuxRegs.GPBDIR.bit.GPIOB5=0; //GPIOB5配置為輸入

      EDIS;

      //啟動數據發送及轉換

      GpioDataRegs.GPBDAT.bit.GPIOB4=0;

      GpioDataRegs.GPBDAT.bit.GPIOB4=1;

      for(i=0;i<1;i++); //延時約200ns

      while((GpioDataRegs.GPBDAT.bit.GPIOB5)!=0); //查詢轉換是否結束

      SSI_VAL=(SSIL&0xFF)|((SSIH<<8)&0xFF00); //讀取SSI編碼器高低八位數據并組合

      GpioDataRegs.GPBDAT.bit.GPIOB4=0;

      ……

      }

      5.2 C8051F310接口實例

      例中編碼器為單圈16位絕對式角度編碼器,編碼器輸出數據形式為BCD碼;SSI208P模塊的八位數據總線與單片機C8051F310的P1端口相連,單片機IO口P2.0控制模塊啟動轉換,P2.1查詢轉換是否結束,P2.2作為模塊片選信號,P2.3區分編碼器數據高八位和低八位;CLKMD0、CLKMD1接地,將SSI208P模塊同步時鐘頻率配置為250KHz;GRAY管腳接地,編碼器輸出的BCD碼數據不做轉換。原理圖如圖7所示。

      圖7 C8051F310與SSI208P連接硬件設計原理圖

      對應圖7中硬件設計,單片機C8051F310相應的軟件代碼如下所示:

      sbit START =P2^0; //P2.0與START管腳對應

      sbit END_N =P2^1; //P2.1與END管腳對應

      sbit CS_N =P2^2; //P2.2與CS管腳對應

      sbit A0 =P2^3; //p2.3與A0管腳對應

      ……

      unsigned int SSIL;

      unsigned int SSIH;

      unsigned int SSI_VAL;

      ……

      void main (void)

      {

      ……

      CONVST=0;

      for(i=0;i<n;i++);

      CONVST=1; //啟動轉換

      for(i=0;i<n;i++); //延時

      while(END_N!=0); //查詢轉換是否結束

      CS_N=0; //SSI模塊片選

      A0=1; //讀取編碼器數據高字節

      for(i=0;i<n;i++); //延時*(1)

      SSI_H =P1; //從P1端口讀取編碼器高八位數據

      A0 =0; //讀取編碼器數據低字節

      for(i=0;i<n;i++); //延時*(2)

      SSI_H =P1; //從P1端口讀取編碼器低八位數據

      SSI_VAL=(SSIL&0xFF)|((SSIH<<8)&0xFF00); //合并成編碼器數據

      CONVST=0;

      CS_N=1;

      ……

      }

      注:在程序加入延時(1)和延時(2)是因為IO口響應有滯后,需一定的穩定時間。


      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 日韩一区二区三区不卡视频| 日韩精品中文字幕无码一区| 精品无码人妻一区二区三区品| 国产成人一区二区精品非洲| 人妻无码视频一区二区三区| 亲子乱av一区二区三区| 国产一区二区三区不卡在线看| 精品国产a∨无码一区二区三区| 综合无码一区二区三区| 一区二区三区中文| 日本韩国一区二区三区| 亚洲av永久无码一区二区三区| 亚洲AV无码一区东京热| 香蕉免费看一区二区三区| 国产在线精品一区二区| 国产激情一区二区三区小说| 国内精品一区二区三区东京| 一区二区三区在线|欧| 亚州日本乱码一区二区三区| 奇米精品一区二区三区在线观看| 一区国严二区亚洲三区| 视频精品一区二区三区| 成人精品一区久久久久| 国产主播一区二区三区在线观看| 无码aⅴ精品一区二区三区| 日本一区二三区好的精华液 | 韩国资源视频一区二区三区| 精品福利一区二区三区免费视频| 国产精品揄拍一区二区| 亚洲制服丝袜一区二区三区| 日本一区二区视频| 无码喷水一区二区浪潮AV| 日本精品一区二区三区视频| 日本精品一区二区三区视频| 夜色福利一区二区三区| 亚洲熟妇无码一区二区三区| 精品国产免费一区二区| 人成精品视频三区二区一区 | 在线观看日本亚洲一区| 日韩精品福利视频一区二区三区| 日本在线视频一区二区三区|