精华内容
下载资源
问答
  • SSI编码器模块连接单圈SSI编码器参数设置
  • 德国HENGSTLER多圈SSI编码器 简介doc,德国HENGSTLER多圈SSI编码器 简介
  • 现在由于一般的单片机都带有SPI接口,但是对于编码器来说大多是ssi的,因此通过AVR单片机SPI串口控制SSI编码器
  • Hengstler AC58-I-SSI编码器数据手册pdf,Hengstler AC58-I-SSI编码器数据手册
  • 芯片STM32F103VET6,定时器模拟SPI读取SSI多圈绝对值编码器的值
  • SSI绝对值编码器

    2018-12-08 14:27:19
    STM32驱动SSI绝对值编码器代码,这类代码网上太少,可以下载参考
  • 西门子ET200S 1SSI绝对编码器模块pdf,西门子ET200S 1SSI绝对编码器模块
  • SSI208P,主要应用于同步串行接口(SSI)光电编码器高速数据采集系统的板级开发。SSI208P模块将同步串行接口数据转换成并行接口数据,内部集成了SSI同步时钟...简化了SSI编码器与DSP、单片机、PC104等控制器的接口。
  • 西门子 ET200S 1SSI 绝对编码器模块的使用
  • 用FPGA做的编码器测试盒,可测试 SSI 、TTL 、 HTL等接口的编码器。 可自动适应编码器单圈/多圈,自动适应分辨率 。可通过 LCD 显示器显示当前编码器绝对位置值及其分辨率
  • stm32 SSI编码器

    千次阅读 2019-11-29 09:11:45
    uint32_t read_AS5311chip(void) ...注意不用SSI模式时,CSN下降沿时CLK要处于高电平状态,否则AB正交脉冲不对。这样可能出现干扰导致磁栅尺错误,从而可以做个这样的时序,就算出现干扰好也能恢复。  

    uint32_t read_AS5311chip(void)
    {
      uint32_t raw_value;// = 0;
      uint16_t inputstream;// = 0;
      uint16_t c;
      inputstream = 0;
        raw_value = 0;
      AS5311_CLK_H;//digitalWrite(_clock, HIGH);
      AS5311_CSN_H;//digitalWrite(_cs, HIGH);
        delay_Systick_200ns(DELAYNUM);//delay_us(2);//
    //  AS5311_CLK_H;//digitalWrite(_clock, HIGH);
    //    delay_us(DELAYNUM);
      AS5311_CSN_L;//digitalWrite(_cs, LOW);下降沿
        delay_Systick_200ns(1);//delay_us(1);//
      AS5311_CLK_L;//digitalWrite(_clock, LOW);
        delay_Systick_200ns(DELAYNUM);//delay_us(2);
      for (c = 0; c < 18; c++)
      {
        AS5311_CLK_H;//digitalWrite(_clock, HIGH);
            delay_Systick_200ns(DELAYNUM);//delay_us(2);//
        inputstream = GPIO_ReadInputDataBit(GPIO_AS5311_DO,PIN_AS5311_DO);//digitalRead(_data);
        raw_value = ((raw_value << 1) + inputstream);
        AS5311_CLK_L;//digitalWrite(_clock, LOW);
            delay_Systick_200ns(DELAYNUM);//delay_us(2);//
      }
        AS5311_CLK_H;
    //    delay_us(10);
        return raw_value;
    }

    void AS5311_AnalyzeSSICode(void)    //获取0-4096
    {
        uint8_t cnt;
        uint8_t cnt_1;
        AS5311Dt.SSICode = read_AS5311chip();
    //    AS5311Dt.detail.Errcode = AS5311Dt.SSICode & 0x0000003F;
    //    AS5311Dt.detail.AbsCode = AS5311Dt.SSICode >> 6;
    //检验数据是否有效 OCF COF LIN MagINC MagDEC Parity
    //                 1   0   0    不能同时为1 奇偶校验
    //OCF 0 补偿算法未完成,bit11-0可能无效
    //COF    1 溢出,bit11-0无效
    //LIN    1 线性度不好,bit11-0无效,若出现需增强磁栅尺的强度
    //MagINC MagDEC 磁场强度    ,1 1表示磁场强度若
    //Parity 偶校验
        if(3 == AS5311Dt.Class.Mag)
        {    //磁栅尺信号弱
            GbDt.Gb.SysAlm = AS5311WEAKERR;
        }
        else
        {
            if(4 != AS5311Dt.Class.Err)
            {        
                GbDt.Gb.SysAlm = AS5311READYERR;
            }
            else
            {
                cnt = 18;
                cnt_1 = 0;
                Seg32data.all = 0x0000A8A1;//AS5311Dt.SSICode;
                do
                {
                    if(Seg32data.bits.bit0 == 1)
                    {
                        cnt_1++;
                    }
                    Seg32data.all = Seg32data.all >> 1;
                }while(cnt--);
                cnt_1 = cnt_1 % 2;
                if(!cnt_1)
                {
                    checkCounter();
                    switch(GbDt.Gb.SysAlm)
                    {
                        case AS5311READYERR:        //准备错误
                        case AS5311WEAKERR:            //信号弱
                        case AS5311EVENERR:            //奇偶错误
                            GbDt.Gb.SysAlm = NORMAL;
                            break;
                    }
                }
                else
                {    //偶校验失败
                        GbDt.Gb.SysAlm = AS5311EVENERR;
                }
            }
        }
    }

    void checkCounter(void)
    {
        int32_t temp;
        float Buf;
        GlPara.Curpole = AS5311Dt.detail.AbsCode/1366;    //[0,1366) 0;[1366,2732) 1;[2732,4095] 2

      if (GlPara.Lastpole == 2 && GlPara.Curpole == 0)
        {
        GlPara.SSIcount++;
      }

      if (GlPara.Lastpole == 0 && GlPara.Curpole == 2)
        {
        GlPara.SSIcount--;
      }
      //lastEncoderVal = encoderVal;
      GlPara.Lastpole = GlPara.Curpole;
        //转换为nm
        temp = AS5311Dt.detail.AbsCode;
        temp = 200000*(temp - GlPara.ZeroCode)/4096;
        temp += GlPara.SSIcount * 200000;
        GlPara.SSICurPos = temp;        //单位10nm=0.01um
    //    Buf = GlPara.SSICurPos;
    //    Buf = Buf * SSIPOS_TO_TPLS;
    //    GbDt.Gb.CrrntPstn[OPTMTR] = Buf;
    }

    void Init_Zero(void)
    {
        AS5311_AnalyzeSSICode();
        GlPara.Lastpole = 1;
        GlPara.ZeroCode = AS5311Dt.detail.AbsCode;
        //checkCounter();    
        GlPara.SSIcount = 0;
    }

    注意不用SSI模式时,CSN下降沿时CLK要处于高电平状态,否则AB正交脉冲不对。这样可能出现干扰导致磁栅尺错误,从而可以做个这样的时序,就算出现干扰好也能恢复。

     

    展开全文
  • 本文讲述编码器SSI BISS EnDat 通信协议。讲述了定义、组成、时序、组网等。SSI通讯协议为缩写,其全称为同步串行接口( Synchronous Serial interface )。 SSI通讯的帧格式如图1所示,数据传输采用同步方式 BiSS...
  • 近年来,随着科技和工业的快速发展,绝对值编码器在其通信技术方面也在逐步地优化与完善,其中SSI协议的输出方式在绝对值编码器领域中应用比较广泛。详细阐述了SSI协议的通信方式,设计出硬件电路,并采用Verilog...
  • 三菱 ST段SSI绝对编码器输入模块ST1SS1用户手册pdf,This User's Manual provides the specifications, handling instructions, programming methods for the ST1SS1 MELSEC-ST SSI absolute encoder input module ...
  • 本代码为SSI协议的绝对值编码器读取程序,用于输出25位SSI数据,实际使用时根据数据位数稍作修改即可。本代码已在精浦编码器上实际应用验证。
  • SSI接口即同步串行接口具有传输速度快、连线简单、抗干扰能力强等优点,因而在光电编码器上得到了越来越广泛的应用,但其与计算机接口的连接实现较为复杂,在一定程度上影响了SSI接口光电编码器的推广和应用。...
  • FRABA 绝对旋转式编码器 SSI数据表pdf,FRABA 绝对旋转式编码器 SSI数据表
  • 绝对式编码器ssi协议 stm32 hal

    千次阅读 2020-06-29 10:01:40
    虽然开始研究的时候比较疑惑,...编码器经过RS422的协议是SSI编码器SSI是什么样子的 STM32如何实现 编码器SSI协议 编码器SSI协议其实非常的简单,他是同步信号,类似SPI。 SSI为同步串联信号,实际的两对RS

    虽然开始研究的时候比较疑惑,其实还是比较简单的。十几分钟就可以全部掌握。

    整体框架

    发送时钟
    读取数据
    stm32
    RS422
    编码器

    编码器的厂商为了抗干扰,在SSI信号使用了RS422,RS422和RS485这类的都是通信协议而已,打个比方,只是你去往同一城市的不同道路而已,最终还是你过去,你并没有变化。

    • 编码器经过RS422的协议是SSI,编码器的SSI是什么样子的
    • STM32如何实现

    编码器的SSI协议

    编码器的SSI协议其实非常的简单,他是同步信号,类似SPI。
    在这里插入图片描述
    SSI为同步串联信号,实际的两对RS422(RS422四根线),一对时钟触发,一对数据发送。
    如图所示,编码器的绝对位置值由接收设备的时钟信号触发、从格雷码高位(MSB)开始,输出与时钟信号同步的串行信号。时钟信号从接收设备发出,以编码器的总位数输出N个中断脉冲,当不传送信号时,时钟和数据位均是高位,在时钟信号的第一个下降沿,当前值开始贮存,从时钟信号上升沿开始,数据信号开始传送,一个时钟脉冲同步一位数据。
    T = 4~11us
    tcal : 1us~5.5us
    n = 数据字长,24位,25位26位和32位
    推荐读取数据的最佳位置不是时钟的下降沿,而是应该是下降沿与下一个上升沿的中间位置。
    这也是为什么SPI不适用的原因,数据可能会出错。

    STM32实现

    SSI协议只需要两根线,一个是时钟,一个是数据 所以 引脚配置
    一个引脚为输出模式,上拉
    一个引脚为输入模式,上拉

    举例子,T = 125khz, tcal = 4us
    伪代码:
    时钟引脚高电平持续几ms //保证时钟为高电平,并且错过t2
    时钟引脚低电平4us
    时钟引脚高电平4us

    /* 保证时钟为高电平,并且错过t2 */
    时钟引脚高电平持续几ms
    /* 第一个时钟数据不需要 */
    时钟引脚低电平4us				
    时钟引脚高电平4us
    /* 读数据 按照需要反复此步骤 直到读取完数据 */
    时钟引脚低电平2us
    读取数据
    时钟引脚低电平2us
    时钟引脚高电平4us
    

    重点是us的实现,对此具体见我的其他文章。先读的数据是最高位,并且读完的数据是格雷码,转换一下就可以得到数据。

    展开全文
  • FRABA SSI多圈绝对旋转式编码器 数据手册pdf,FRABA SSI多圈绝对旋转式编码器 数据手册
  • GEMPLE GAX60SSI输出多圈绝对值光电编码器pdf,GEMPLE GAX60SSI输出多圈绝对值光电编码器
  • GMS412 SSI同步串联单圈绝对值编码器pdf,13位SSI同步串联信号,分辨率13位8192,单圈绝对值编码器型号:GMS412 RE10 SGB* SSI数字输出,最快可设时钟频率1MHZ,高速度、高工业等级。
  • STEGMANN 多圈绝对值旋转编码器ATM60 SSI型pdf,STEGMANN 多圈绝对值旋转编码器ATM60 SSI
  • FRABA SSI多圈绝对旋转式编码器 MCD S06技术图zip,FRABA SSI多圈绝对旋转式编码器 MCD S06技术图
  • FRABA SSI多圈绝对旋转式编码器 MCDC10技术图zip,FRABA SSI多圈绝对旋转式编码器 MCDC10技术图
  • FRABA SSI多圈绝对旋转式编码器 MCDB06技术图zip,FRABA SSI多圈绝对旋转式编码器 MCDB06技术图
  • Hengstler 增量型编码器产品说明书,汉化版 AC58 -BiSS/SSI 标准工业类型
  • 库伯勒 绝对多圈系列 9081编码器SSI / RS485 可编程pdf,库伯勒 绝对多圈系列 9081编码器SSI / RS485 可编程
  • 精浦 GMX425 系列SSI同步串联信号输出多圈绝对值编码器pdf,精浦 GMX425 系列SSI同步串联信号输出多圈绝对值编码器
  • FRABA SSI (同步串行接口)绝对旋转式编码器 数据手册pdf,FRABA SSI (同步串行接口)绝对旋转式编码器 数据手册
  • FRABA SSI (同步串行接口)绝对旋转式编码器 2D技术图zip,FRABA SSI (同步串行接口)绝对旋转式编码器 2D技术图

空空如也

空空如也

1 2 3 4 5 6
收藏数 106
精华内容 42
关键字:

ssi编码器