搜索
bottom↓
回复: 3

DMX512协议中,串口接收问题,求助!!

[复制链接]

出0入0汤圆

发表于 2007-12-29 21:30:00 | 显示全部楼层 |阅读模式


我是做LED的,要用到一个DMX512协议调光,DMX512协议类似串口232协议,我使用单片机M16的串口RX接收这个协议的数据,使用的是串口协议。协议如图,每个FRAME就是串口协议里的一帧,每帧FRAME包含一个开始位(低电平)和两个停止位(高电平),没有奇偶校验。因此一个FRAME有11位。DMX512协议要求速度为是250K,也就是说4uS收一位.一个完整DMX512数据包包含3个部分:一个起始低电平“break”(图中①表示),512个FRAME,还有一段高电平(图中⑨表示),我的问题是每个数据包最前面还有一段很长的低电平(就是图中①break),他是一个数据包开始的标志,时间长度最小可以88微秒S ,最大可以 1秒。



我想的问题1,如果用串口RX口去接收这样协议的数据包,怎么去检测这个“图中①break”的到来?
我的通讯速度是250k波特,我用16M晶振。

图中协议说明:
①为复位(BREAK)信号,一个数据包开始的标志;②为大于等于8微秒的标记;③为串行传送的一帧数据;④为低电平的开始位;⑤为一帧最低位;⑥为一帧最高位;⑦为两个高电平的停止位;⑧为两个字节的FRAME之间可允许的高电平的间隔时间。⑨表示无信号时或两个数据包之间线路保持高电平的时间;


说的简单点就是一连串(512个)的串行数据前面加了一个长时间(2帧时间左右)低电平标志,组成的一个串行协议,我不知道怎么去判断这个低电平标志位!就无法判断一个数据包的开始。

由于①的时间过于长了,时间长度大于一帧串口数据,串口接收到低电平后,长时间没有收到停止位。


我的问题2:当单片机串口接收到如图中①+②部分的电平信号后,串口会接收到数据0x00吗?还是接收不到数据,UART的帧错误标志位也会被置位,即FREE标志位也会置1?

我的问题3:如果我要去判断一个数据包的到来,也就是判断①+②部分的电平信号是否开始,应该判断接收到了0x00,还是FREE标志位被置1?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2007-12-29 21:56:15 | 显示全部楼层
谢谢回复

出0入0汤圆

发表于 2007-12-29 22:07:18 | 显示全部楼层
我给你出出主意吧,出的不好别怪我,呵呵
1.我用AVR做过模拟串口,也不是很麻烦很复杂,你这个问题用软件模拟一定行,要是闲AVR慢,用STC5410,比AVR快好几倍.
2.另个突发奇想是用同步移位寄存器,比如74HC595,或者个GAL自己做个11位移位器转换为并行,而用(2)的上升沿为同步开始点,4US的同步时钟移位.(或者用(2)的上升沿DELAY 2US开始发生同步移位时钟信号,意为取信号的中点电平).用单片机中断检测其他的开始位,放行同步移位.把这个问题转换成并行处理的方法,节约单片机时间.

出0入0汤圆

发表于 2007-12-30 12:43:45 | 显示全部楼层
好象PIC系列有这样的例子,你去找一下,我看过
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 12:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表