打印

怎么用403A 采集类似WS2811芯片的数据?

[复制链接]
5580|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
joyall|  楼主 | 2021-5-9 09:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数据频率是800K, 高电平最短400ns, 最长800ns, 归零码,类似红外遥控器的信号,主要是速度比较高,请大家推荐一个比较好的方法。我想过几种方式:
1   输入捕捉,测试了一下连续不间断的切换高低电平触发输入捕捉,只能收到几个数据,后面全乱了,也可能代码没写好。
2   中断触发,类似解码红外遥控器信号
3   在主程序中死循环判断IO电平变化解码

程序功能说起来是比较简单,把接收到数据解码,再用串口把解码的数据发出去。

请高手门指点一下,谢谢!

使用特权

评论回复
评论
电子小二哥 2021-5-9 19:54 回复TA
谢谢分享 
tyw 2021-5-9 14:51 回复TA
应该有个通信协议,捕捉起始位,然后根据协议,一步一步收数解码. 

相关帖子

沙发
lyjian| | 2021-5-9 16:35 | 只看该作者
跑上百M速度的CPU,捕抓这点速率的数据不费什么CPU吧?

使用特权

评论回复
板凳
joyall|  楼主 | 2021-5-9 16:41 | 只看该作者
我采用以下这种方式解出来了,AT32 MCU跑的是240M, 如果是跑72M的STM32,应该是解不出来。

3   在主程序中死循环判断IO电平变化解码

使用特权

评论回复
地板
lyjian| | 2021-5-9 20:18 | 只看该作者
joyall 发表于 2021-5-9 16:41
我采用以下这种方式解出来了,AT32 MCU跑的是240M, 如果是跑72M的STM32,应该是解不出来。

3   在主程序中 ...

这点速率,用捕抓功能,003之类的8位MCU都能解得轻轻松松的。

使用特权

评论回复
评论
wangshujun 2021-6-14 16:24 回复TA
大多数的003都没有捕获功能的,有捕获功能的32位003压力就不大了,如果还有dma的话,就更简单了 
5
joyall|  楼主 | 2021-5-12 09:06 | 只看该作者
lyjian 发表于 2021-5-9 20:18
这点速率,用捕抓功能,003之类的8位MCU都能解得轻轻松松的。

你确定? 8位的003一个指令周期的时间是多少?

使用特权

评论回复
6
lyjian| | 2021-5-14 19:21 | 只看该作者
本帖最后由 lyjian 于 2021-5-17 15:24 编辑
joyall 发表于 2021-5-12 09:06
你确定? 8位的003一个指令周期的时间是多少?

假设归零码数据0高电平400ns,低电平800ns,数据1高电平800ns,低电平400ns;RESET码低电平时间280uS;一帧只发送24bit数据。
那相邻两位数据最短的下降沿时间是800nS(出现在10数据时)。
用1T 8051芯片(例如HC89SC003\N76E003\SC93F003等)来做数据接收。
1、T0设为8自动重载定时器,工作于门控方式。溢出周期设置在约600nS。
2、采用只判断高电平时间长短来做01判断。
3、采用软件查询方式来做(中断响应时间太长,800nS内不够时间做处理)。
4、采用汇编软件优化速度,接收解码一位数据需要6条指令。
HC89S003的话,时间是13T,CPU频率需要在16.3MHz以上。
N76E003的话,时间是20T,CPU频率需要在25MHz以上(超出这个芯片的最大工作频率没法实现,需考虑其他算法)。
SC93F5003(或STC的STC8G之类芯片),时间是8T,CPU频率需要在10MHz以上。
5、24位数据时间28.8uS,空闲时间280uS,CPU利用率不到1%。

使用特权

评论回复
7
lyjian| | 2021-5-15 10:54 | 只看该作者
lyjian 发表于 2021-5-14 19:21
假设归零码数据0高电平400ns,低电平800ns,数据1高电平800ns,低电平400ns;RESET码低电平时间280uS;一 ...

同样配置,另外一种算法,汇编软件接收解码一位数据需要5条指令。用HC89S003\N76E003执行时间分别是10T\13T,用16MHz频率时就可完成。

使用特权

评论回复
8
joyall|  楼主 | 2021-5-17 13:31 | 只看该作者
lyjian 发表于 2021-5-14 19:21
假设归零码数据0高电平400ns,低电平800ns,数据1高电平800ns,低电平400ns;RESET码低电平时间280uS;一 ...

厉害,我不会嵌入汇编到C语言里面,思维有局限,学习了,多谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

45

帖子

0

粉丝