打印

用一只电阻,一只二极管,只用一跟口线

[复制链接]
7288|55
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zusen|  楼主 | 2007-12-13 19:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zusen|  楼主 | 2007-12-13 23:20 | 只看该作者

没人玩,我自己玩,自得其乐

如图
模拟串口作为从机

RXD 和 TXD 为51单片机的收和发,作为主机

模拟串口平时等待接收,当收到主机的命令(特定的协议,后面祥细说明),再作相应的操作(比如转换为发送,向主机发送数据)

当主机要向从机发送命令时,先CLR  REN,屏闭掉主机的接收功能(屏闭冲突),当发送完命令后,SETB  REN,OPEN 接收功能,等待接收从机或其他设备的串口数据

模拟串口接收到命令后,先解译命令(协议),判断是命令还是普通数据
如果是命令,再按照命令作特定的操作,比如 向主机发送数据,那么这时,模拟串口转换为发送(这时要延时一小段时间,待主机OPEN接收状态),再向主机返馈数据。

关于协议,如果产品支持级联控制,那么协议是少不了的,说说协议吧

协议可以用国际商业常用的,比如 TCP/IP 、IIS,等等

但自己也可以开发一个小型、适合自身产品的简单协议

比如: AB 20 ID 18 02 XX XX BA
说明一下吧
第一个字节: AB 是协议开始字节,作为开始标记

第二个字节: 20 命令一,告诉从机要操作那个功能模块

第三个字节: ID 设备ID或设备设置通道,就是从机的身份*,只有ID和自己的ID相同,才会根据命令操作,否则掉弃

第四个字节:18 命令二,功能模块要操作的功能,比如,这个18 代表 要控制外设的开关,如果是 20 ,就是向串口返馈数据

第五个字节: 02 数据长度,表示后面跟着有多少个 数据

第六第七字节: XX XX 数据,根据数据作操作,比如结合 第四个字节 18,数据是  01 01 的话,那么 就是 第一通道 开(第一个01 表示第一通道 ,第二个01 表示状态 为开 00表示为关)。

第八字节:BA 校验和、结速字节,如果是BA 那么不去检验校验和,只是标示命令结速,其如是其他,那么这个字节作为校验,前面所有 字节相加 ,然后保留前8位,再加上 这个 校验字节,如果是 FF ,那么就是说,这命令接收到是正确的,如果不是FF,就是说明 这命发送途中可能受到干扰,这时 可向主机后馈一个 数据接收错误的信息,让主机重发。

OK,协议的实现大体就是这样

有空再来说说 如何在程序中去实现这种协议

好久没打过这么多字了,现在用笔都不会写了,所以里面有很多错别字,呵呵,请见谅,希望对初学者有所启发吧,呵呵

使用特权

评论回复
板凳
cnchip| | 2007-12-13 23:29 | 只看该作者

呵,得防止自发自收的误接收!

使用特权

评论回复
地板
zusen|  楼主 | 2007-12-13 23:31 | 只看该作者

~~~~

当主机要向从机发送命令时,先CLR  REN,屏闭掉主机的接收功能(屏闭冲突),当发送完命令后,SETB  REN,OPEN 接收功能,等待接收从机

使用特权

评论回复
5
西安化易| | 2007-12-14 00:30 | 只看该作者

这个好象怎么这么眼熟,以前一定是看到过.世间类同的事真不

使用特权

评论回复
6
zusen|  楼主 | 2007-12-14 00:59 | 只看该作者

呵呵,不会吧,绝对原创

使用特权

评论回复
7
fsaok| | 2007-12-14 07:16 | 只看该作者

很好

有看头,继续关注中,

使用特权

评论回复
8
zenyin| | 2007-12-14 09:02 | 只看该作者

好思路!

由此可以看到模拟串口是很灵活的,再自己形成一套通信规程,最后再把ZINYIN的软件锁相环思路用上,就可以实现高效率同步通信了!

使用特权

评论回复
9
zusen|  楼主 | 2007-12-14 09:08 | 只看该作者

zenyin

有什么更好的改进思路呢??

模拟灵活是一个特点,但也有很大的弊端,就是比硬件串口占用CPU更多的资源

使用特权

评论回复
10
infree| | 2007-12-14 09:16 | 只看该作者

高呵

使用特权

评论回复
11
zusen|  楼主 | 2007-12-14 10:51 | 只看该作者

关于协议这方面

在产品里应用得特别的广范

一个良好的协议,决定了设备间的通信稳定性和可靠性,是相当的重要

大家讨论一下吧~~~~~~~~~~

使用特权

评论回复
12
gjg191| | 2007-12-14 10:59 | 只看该作者

dd

实用性不大

使用特权

评论回复
13
zusen|  楼主 | 2007-12-14 11:08 | 只看该作者

实用性还是很大的

在通信这方面,减少线数是很必要的,当你做过 在一条双绞线里传输电源、音频、数据等等的应用时,你会发现,能将线数减少是多么困难的一件事

曾经做过 一层系统,在双绞线里传输多种信号,发现一条双绞线的组数不够,然后想到 将音频转为数字式,然后在其中参入 命令协议,和终端通信

使用特权

评论回复
14
qihao| | 2007-12-14 12:19 | 只看该作者

有创意, 但真有多大商业价值哦!

使用特权

评论回复
15
zenyin| | 2007-12-14 12:23 | 只看该作者

等一会,我把我的改进再贴出来,是体制性兼容

多一只三极管,这三极管用得特有创意!现在先物质充实吧,网络是精神食粮!

使用特权

评论回复
16
zusen|  楼主 | 2007-12-14 12:30 | 只看该作者

占个位子先

使用特权

评论回复
17
zenyin| | 2007-12-14 14:34 | 只看该作者

两个综合一下

下面在zusen的小軒风景上加个三极管.这三极管接法是共基极接发,下面二极管和小电阻正好产生三极管导通高一点的电压(510欧姆上约有50MV),PX.Y是模拟串口,当它为高电平时
不影响用户串口,用户可以自由发挥,此时模拟串口可以监视片上串口接收P3.0也可以和P3.0一道并行接受.由于发射极二极管垫位作用,当P3.0为低电平时,三极管9014不会导通形成自收又重发.当PX.Y连续监视10~11位都没有低电平下拉时,说明客户串口处于空闲,我模拟串口可以发送,当我PX.Y发送的时,客户也要发送就要有仲裁,退一步海阔天空,我在线侦听到我的"1"时被对方拉成"0",就知道对方也要发送了,我设好标志主动退出就是了!多以人为本仲裁机制哈,做人压迫是低调,做事要高调嘛!----赌气是拿别人的小间八十折磨自己哈:))))

使用特权

评论回复
18
zenyin| | 2007-12-14 14:40 | 只看该作者

呵呵图没跟上

不好意思业务不熟

使用特权

评论回复
19
zenyin| | 2007-12-14 14:43 | 只看该作者

呵呵赚分了

改帖子不能加图?

使用特权

评论回复
20
zusen|  楼主 | 2007-12-14 15:54 | 只看该作者

再仔细地研究了一翻

当模拟为发时, P3.0 如何接收

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

233

主题

3191

帖子

0

粉丝