21ic问答首页 - 怎么用403A 采集类似WS2811芯片的数据?
怎么用403A 采集类似WS2811芯片的数据?
joyall2021-05-09
数据频率是800K, 高电平最短400ns, 最长800ns, 归零码,类似红外遥控器的信号,主要是速度比较高,请大家推荐一个比较好的方法。我想过几种方式:
1 输入捕捉,测试了一下连续不间断的切换高低电平触发输入捕捉,只能收到几个数据,后面全乱了,也可能代码没写好。
2 中断触发,类似解码红外遥控器信号
3 在主程序中死循环判断IO电平变化解码
程序功能说起来是比较简单,把接收到数据解码,再用串口把解码的数据发出去。
请高手门指点一下,谢谢!
1 输入捕捉,测试了一下连续不间断的切换高低电平触发输入捕捉,只能收到几个数据,后面全乱了,也可能代码没写好。
2 中断触发,类似解码红外遥控器信号
3 在主程序中死循环判断IO电平变化解码
程序功能说起来是比较简单,把接收到数据解码,再用串口把解码的数据发出去。
请高手门指点一下,谢谢!
赞0
厉害,我不会嵌入汇编到C语言里面,思维有局限,学习了,多谢!
评论
2021-05-17
赞0
同样配置,另外一种算法,汇编软件接收解码一位数据需要5条指令。用HC89S003\N76E003执行时间分别是10T\13T,用16MHz频率时就可完成。
评论
2021-05-15
赞0
假设归零码数据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%。
评论
2021-05-14
赞0
你确定? 8位的003一个指令周期的时间是多少?
评论
2021-05-12
赞0
这点速率,用捕抓功能,003之类的8位MCU都能解得轻轻松松的。
评论
2021-05-09
大多数的003都没有捕获功能的,有捕获功能的32位003压力就不大了,如果还有dma的话,就更简单了
赞0
3 在主程序中死循环判断IO电平变化解码
评论
2021-05-09
赞0
评论
2021-05-09
您需要登录后才可以回复 登录 | 注册