本帖最后由 hualiming025 于 2014-3-24 10:49 编辑
这样的通信方式代码怎么写?各位有什么高见?
用的是avr16单片机,现在需要和一电动车仪表通信,一帧10个字节。通信本不是难事,但是这个仪表通信采用非标准通信方式。见通信协议原文的部分说明:
本约定自带传送速率基准,主从方式采用单线单向传输,即只需要一根传输线路,接口通用方便;
1.以下时间宽度误差允许范围+-20%
上面的通信约定我分析了下,在单片机中只要写出三个最基本的函数代码就行了,分别是
同步信号()
发送1()
发送0()
函数实现,关键在于时间的控制,然后在时间点上在IO口输出电平。
在单片机中实现这三个函数最容易的应该是使用延时函数,但ms级的延时要不得啊,其他代码得执行。
此外就是使用定时器控制时间,但是这三个函数如何实现难度就比较大了。
另外,我程序主循环时间是us级的,我的设想是,设置一个计数变量,循环个n次之后时间刚好1ms,这时调用一下发送函数,来实现发送。这个想法的难点也在于上述三个基本函数的实现,代码怎么写现在还没个明确的头绪。
请问各位,有何高见?尽管说说看
补充说明一下,跟仪表通信,我单片机只要发送,不要接收
|