|
||||||
| | 首页 | 文章中心 | 下载中心 | 本站商品 | 学习资料 | | ||||||
| 广告载入中... | ||||||
| 您现在的位置: 电子爱好者 >> 文章中心 >> 实用电路 >> 正文 |
|
|||||
| PC和多单片机通信的一种方法 | |||||
| 作者:佚名 文章来源:非本站原创 点击数: 更新时间:2005-5-5 | |||||
| 单片机应用简单灵活,使用非常广泛,但存在无法实时保存大量的数据、实时更新数据等缺点,因此经常需要把单片机和PC机的优势相结合组成系统。本文以卡式电话管理系统(非通用型电话系统)为例,从硬件和软件两方面分析PC和单片机之间的通信方法和注意事项,并给出相关系统的结构框图。 现在的卡式电话系统一般都采用单片机实现读卡、计费等功能,但单片机操作相对固定,无法根据外界条件变化作出相应改变。比如当计费的单价发生变化时,必须重新更新整个计费程序,再烧录到每个单片机中,这就使得维护非常复杂。如果把这些经常改变的量写入到一个类似服务器的PC机中,单片机只要到PC中读取相应的数据,就可以实现数据更新了。实现此功能,要解决PC和多个单片机之间的连接,以及协调PC和多个单片机之间的通信,使之不出现冲突。 PC和单片机之间的连接方式有多种,如利用微机的串口、并口或通过专门的I/O板进行数据传送,单片机通过共享通道的方法挂在上述总线上。附表列出以上三种连接方式的特点。 应用时应根据实际需要进行选择。在我们的卡式电话系统中,通信数据量很小、传输距离很近,因此选择了串口通信方式。 由于每个单片机都是通过串口线和PC连接的,也就是说其总线是共享的,必须避免冲突。其方法有:各单片机通过中断向PC申请数据总线、PC轮询各单片机、单片机进行数据总线检测等。单片机通过中断向PC申请数据总线的方式可以实现实时的通信,但控制比较复杂,同时需要PC具有中断排队的能力,并且要求很多的中断线,因此只适合一台PC带少量的单片机的情况。PC轮询单片机则相对简单,成本也很低,不过实时性较差,握手时延很长。第三种方法若要完全避免冲突则非常复杂。 在卡式电话系统中,我们采用了由PC机轮询方式,在轮询时采用PC中断单片机的方法。这是第一、二种方法的折衷。由于中断线是共享的,还为每个单片机设定了地址码。 卡式电话系统的硬件系统框图如图1所示。此系统共需要4根信号线,即收、发、地和中断线,收、发和地可以从串口中找到相应的线,而中断线采用串口中的RTS信号,可以直接编程。 软件工作流程是:PC先发送一个中断信号,使所有的单片机转入中断程序,然后发送一个地址码,各单片机读此地址码以后和自己的实际地址相比较,若相同,则转入相应的动作,比如读取单价或上报本机信息等,否则从中断程序中跳出。软件需要解决的是设定PC串口的工作方式,包括串口的通讯速率、奇偶校验位、停止位等。经测试,此系统可以在288kbit/s速率下稳定工作,比较理想。在此工作速率下,一台PC可以带64台单片机。图2为通信程序流程图。 山东 韩波 |
|||||
| 文章录入:admin 责任编辑:admin | |||||
| 【发表评论】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 没有相关文章 |
| |
| | 设为首页 | 站点地图|<产品开发服务|光盘刻录服务| 广告合作 | 访问记录 |汇款方法 | 关于VIP会员 | | |
![]() |
|