stm32f407 spi3 mosi没有输出_绝对值编码器输出信号的有哪几种方式?

绝对值编码器输出信号的有哪几种方式?今天让华尔圣编码器厂家来解答下:

绝对值编码器内部是多码通道读取,数值是从2的0次方到2的n-1次方的编码,因此其输出与增量脉冲输出不同,从物理设备分类来看,并行输出、串行同步输出、串行异步总线特里普森编码器介绍绝对值编码器输出信号的方法。

399b82d3b9364584fce4f31a23757a4d.png

一、并行输出

多少位(代码通道)的绝对值编码器有多少条信号电缆? 各电缆表示1比特的数据,电缆输出电平的高低表示1或0,物理设备与增量值编码器类似,有集电极开路NPN、PNP、差动驱动、推挽HTL等,推挽式的输出信号的电压高同时支持PNP和NPN,并行输出尽可能选择这样的输出,并行输出一般以灰色码的数学形式输出,所以一直以来被直接称为灰色码编码器。

在位数不高的绝对值编码器中,一般直接以这种形式输出数字。 可以直接访问PLC和上位机等后续设备的I/O接口。 有几位数就连接几分? 直接读取水平高低,输出即时,连接简单。 但是,并行输出存在以下问题。

1 .须是格雷码。 如果是纯二进制代码,刷新数据时多个位可能会发生变化,读取值可能会在短时间内成为错误代码。

2 .传输距离不能很远。 传输距离因物理设备而异。 一般在10米以内使用。 在复杂的环境中,zui好是隔离。

3 .占有多点接口,所有接口和电缆须可靠地连接。 因为如果有个别的连接不良点,那一点的电位总是0,出现错误代码无法判断。

4 .位数多,需要很多芯电缆,确保连接优良,带来工程难度和可靠性风险,同样对编码器,同时需要很多节点输出,特别是高位或多圈编码器,设备在编码器内部

9802be72d76ce0854c3a7a6f6940d65b.png

二、同步串行接口(SSI  )输出

串行输出是数据集中在一组电缆上传输,根据约定在时间上具有优先顺序的数据输出,将该约定称为通信协议。 串行输出电缆少,传输距离远,因此编码器的保护和可靠性大幅度提高,一般来说,高位数的绝对编码器和绝对值多旋转编码器是串行输出的。 串行输出分同步和异步接口,同步是发送命令和数据同步。 这是指令走一对电缆,数据走一对电缆,同步动作经常用SSI表示。 SSI的物理格式通常是5VTTL或5V差分,也是推挽式的。 那个数学格式是各家约定的。 指令一般由三个部分组成。 1是同步速度,2是指令-数据输出的内容,3是数据的开始。 这些经常在通信协议中总结。

网址:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于stm32F030C8T6的keil工程中使用普通的GPIO口模拟SPI_MOSI通信接口的代码示例: ```c #include "stm32f0xx.h" #define SPI_MOSI_GPIO_PORT GPIOA // SPI_MOSI所在的GPIO端口 #define SPI_MOSI_GPIO_PIN GPIO_Pin_0 // SPI_MOSI所在的GPIO引脚 void SPI_MOSI_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = SPI_MOSI_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(SPI_MOSI_GPIO_PORT, &GPIO_InitStructure); GPIO_SetBits(SPI_MOSI_GPIO_PORT, SPI_MOSI_GPIO_PIN); } void SPI_MOSI_GPIO_WriteBit(uint8_t bitValue) { if (bitValue != 0) { GPIO_SetBits(SPI_MOSI_GPIO_PORT, SPI_MOSI_GPIO_PIN); } else { GPIO_ResetBits(SPI_MOSI_GPIO_PORT, SPI_MOSI_GPIO_PIN); } } int main(void) { SPI_MOSI_GPIO_Init(); while (1) { // 发送数据 SPI_MOSI_GPIO_WriteBit(0); SPI_MOSI_GPIO_WriteBit(1); SPI_MOSI_GPIO_WriteBit(0); SPI_MOSI_GPIO_WriteBit(1); // ... } } ``` 在上述代码中,我们首先定义了SPI_MOSI所在的GPIO端口和引脚,并在SPI_MOSI_GPIO_Init函数中进行了GPIO初始化,设置GPIO引脚为输出模式,并设置为推挽输出、上拉输入模式。 在SPI_MOSI_GPIO_WriteBit函数中,我们通过判断传入的bitValue参数值,来设置GPIO引脚的电平,从而模拟SPI_MOSI通信接口的数据传输。 最后,在主函数中,我们可以通过调用SPI_MOSI_GPIO_WriteBit函数来模拟SPI_MOSI通信接口发送数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值