找回密码
 新注册用户
搜索
查看: 6590|回复: 5

[求助]关于网络传输的问题,具体问题高手进来看

[复制链接]
发表于 2005-5-19 10:36:39 | 显示全部楼层 |阅读模式
当用422串行传输数据时,怎么用软件实现在连续的5个1后插入1个0?我知道好象硬件上比较容易实现,网络芯片已经提供了此功能,但怎么用软件实现呢,串口传输不都是以字节为单位的么,如果在1byte里插如1bit,那多出来的bit放在哪里呢,有专用的C函数么
回复

使用道具 举报

发表于 2005-5-22 12:01:03 | 显示全部楼层
用软件实现是可以的,例如用P1.0口来模拟:
P1.0=1;
_Nop();
_Nop();
_Nop();
_Nop();
_Nop();
P1.0=0;

串口传输有各自协议的,协议规定了通信格式。
回复

使用道具 举报

发表于 2005-5-22 12:01:17 | 显示全部楼层

422应该不考虑此问题。

422一般用于速率较低的异步串口通讯,其低速响应很好,不必考虑连续1或0的问题,其速率一般都不超过2M,当然一些特殊高速率产品除外。
回复

使用道具 举报

发表于 2005-5-22 12:01:33 | 显示全部楼层

这需要根据应用场合而定

这需要根据应用场合而定,你具体针对的应用场合是什么?系统基本方案、硬件协议是什么?这都需要了解到才好细化。
回复

使用道具 举报

发表于 2005-5-29 16:20:51 | 显示全部楼层

利用奇偶校验位

如果想用软件实现在连续的5个1后插入1个0,是可以在1byte里插如1bit,而多出来的bit放在奇偶校验位里发送。每侦数据受到后,由软件将数据进行复原。还有,数据侦不作出错检验,数据包加checksum出错校验字即可。
回复

使用道具 举报

发表于 2005-5-29 16:21:04 | 显示全部楼层

要看你的应用

看你的问题好象是做数据编码传输是吧,暂时如果把你的问题看做是编码传输,比如连续5个1后加0,连续5个0后加1,这种情况好象已经不以字节为传输单位了,而是编码的格式来传输,你需要单独写一段小程序,是很容易的。
而且你也并没有说明你的传输速率等,如果不是以类似9600,N,8,1这种方式传输的,那传输程序就由你自己来写了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 新注册用户

本版积分规则

论坛官方淘宝店开业啦~

Archiver|手机版|小黑屋|中国分布式计算总站 ( 沪ICP备05042587号 )

GMT+8, 2025-5-12 03:10

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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