[DSP编程] 关于28335的SCI模块及自定义串口通讯协议的问题

[复制链接]
5940|16
 楼主| scottly 发表于 2014-9-29 16:17 | 显示全部楼层 |阅读模式
本人新手,现在在做一个项目,需要通过串口进行数据传输,而且串口数据的协议需要自己定;
例如:
   数据格式是: 需要一个命令前缀0x21,然后在是控制命令——>数据的长度——>数据主体

请问该怎么去实现?

使用的是28335的SCI串口模块,现有的例程里都是主机发送一段字符串给28335,28335将其返回来;
像上面那个功能怎么实现,比如还可以根据不同的控制命令,控制28335执行相关的操作,请指教!
@zhangmangui
稀饭先生 发表于 2014-9-29 16:58 | 显示全部楼层
可以在串口中断里面实现啊。
 楼主| scottly 发表于 2014-9-29 17:39 | 显示全部楼层
稀饭先生 发表于 2014-9-29 16:58
可以在串口中断里面实现啊。

额,什么意思?我强调的是数据的协议格式。。
wangch_sh 发表于 2014-9-29 20:06 | 显示全部楼层
发送就是了,先发0x21,再发控制命令,再发数据长度,再发数据主体。
zhangmangui 发表于 2014-9-29 21:15 | 显示全部楼层
你的数据格式只是叫收发双方知道就行了啊  
发的一方按照数据格式发送  收的一方按数据格式校验  接收
你可以有一个发送函数  函数可以根据传递参数判断是哪个命令   
根据另一个传递参数判断是多长   然后就启动发送
也就是循环  一个送入发送寄存器一个字节   一次一次发送
接收端一直循环接收针头  如果此针数据中还有02   就要特殊处理了
 楼主| scottly 发表于 2014-9-29 22:46 | 显示全部楼层
wangch_sh 发表于 2014-9-29 20:06
发送就是了,先发0x21,再发控制命令,再发数据长度,再发数据主体。

先发0x21,再发控制命令,再发数据长度,再发数据主体;
是不是上面每一个都是一帧数据?连续发送4帧数据?
(一帧数据有数据位 校验位 停止位等)
那接收端如何知道有4帧数据需要接受呢?
 楼主| scottly 发表于 2014-9-29 22:48 | 显示全部楼层
zhangmangui 发表于 2014-9-29 21:15
你的数据格式只是叫收发双方知道就行了啊  
发的一方按照数据格式发送  收的一方按数据格式校验  接收
你可 ...

接收端如何知道是帧头啊?
zhangmangui 发表于 2014-9-29 23:32 | 显示全部楼层
scottly 发表于 2014-9-29 22:48
接收端如何知道是帧头啊?

给你个例子    参考一下他们协议的设计

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
wangch_sh 发表于 2014-9-30 08:14 | 显示全部楼层
0x21不就是帧头吗
 楼主| scottly 发表于 2014-9-30 08:39 | 显示全部楼层
zhangmangui 发表于 2014-9-29 23:32
给你个例子    参考一下他们协议的设计

谢谢了。。。。
 楼主| scottly 发表于 2014-9-30 08:40 | 显示全部楼层
wangch_sh 发表于 2014-9-30 08:14
0x21不就是帧头吗

你的意思是把实际有用的信息都放在数据部分是吧?数据部分一般不是1-8位么?数据部分超过8位怎么办?
wangch_sh 发表于 2014-9-30 09:21 | 显示全部楼层
超过是几个字节就用几个字节,否则你数据长度有什么用呀
NWPU_CHEN 发表于 2014-9-30 09:32 | 显示全部楼层
露珠好好研究某一个通信协议就明白了,现在你的思路很混乱,一个协议发送只管发送,接收部分根据协议进行判断解析校验,简单模式帧头+数据+校验。发一个存一个,一帧发完校验处理,没有啥疑问,你数据位可以8位的发,多个数据可以连续发,这点没有疑问,还有你说的不知道帧头,一包数据的帧头地址是确定的,一帧数据的位数也能知道,这一判断就出来了,根本不必纠结,好好研究研究一个协议,思考思考
 楼主| scottly 发表于 2014-9-30 09:48 | 显示全部楼层
NWPU_CHEN 发表于 2014-9-30 09:32
露珠好好研究某一个通信协议就明白了,现在你的思路很混乱,一个协议发送只管发送,接收部分根据协议进行判 ...

恩恩,谢谢你的回复,明白了,一帧数据就是帧头,数据,校验,帧尾;其中数据部分最多是8位;
就是说一帧是1+8+1类似的格式,如果我有四个字节,就需要连续发4次(1+8+1)个帧就行了。
yklstudent 发表于 2014-9-30 13:57 | 显示全部楼层
呵呵 楼主就是个逗比
不知道楼主怎么明白的,哈哈
楼主别生气啊
 楼主| scottly 发表于 2014-9-30 16:07 | 显示全部楼层
yklstudent 发表于 2014-9-30 13:57
呵呵 楼主就是个逗比
不知道楼主怎么明白的,哈哈
楼主别生气啊

:curse:
yklstudent 发表于 2014-10-1 15:23 | 显示全部楼层
scottly 发表于 2014-9-30 16:07

:curse::lol
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

179

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部