用单片机普通I/O口实现多机通信的一种新方法

发布者:科技徜徉最新更新时间:2012-02-06 来源: 21IC 关键字:单片机  多机通讯  总线型网络结构 手机看文章 扫描二维码
随时随地手机看文章

1 传统的多机通信方式

    在实际工业应用中,经常遇到需要多台计算机配合才能完成的数据采集与控制系统的任务,而多台计算机配合主要是通过多台计算机之间的通信来实现的。为此必须将它们按实际需要组成一定形式的网络。多机通信网络通常有5种网络形式:星型、树型、总线型、环型、分散型网络结构。它们各有优缺点,其中总线型网络结构以可靠性好、接口简单、组成灵活和控制简单等优势,在实际应用中使用最多。

    总线型网络结构中主机与分机进行串行通信可以利用查询方式或中断方式。用查询方式工作时,所有分机只能处于监听或通讯状态,资源比较浪费。实际使用时大都采用中断方式。图1是采用中断方式,利用单片机的串行口方式3及SM2和RB8的配合完成主从式的多机通信的网络结构图。从图中可以看出,原则上主机可以管理N台分机,但考虑到各机的发送端的驱动能力,一台主机一般可以管理8台分机。对于串行口方式2和3,每帧11位,其中第9位是可编程的,利用它的奇偶校验,也可以进行多机通信。用作多机通信时,对于方式2和3,若SM2=1,且接收的第9位RB8=0,则RI不启动,即接收到的全帧作废,当接收到的RB8=1时,接收有效;而当SM2=0时,无论接收到的RB8是什么,接收都有效。

    与查询方式不同,采用中断方式时,分机不必一直处于监听状态,而可以进行相应的数据采集或控制等其他工作。当主机有通讯要求时,可通过P10向各分机发送中断请求(要求通讯)信号;而从机在工作时,如果允许主机与之通讯,则可开外部中断及总中断1,否则关闭中断1。

    这种中断方法解决了分机盲目等待的问题,分机也能立即响应主机的通讯请求,但在某些应用场合有相当的局限性。

    (1)当分机通信波特率要求不一样时;

    (2)主机(或分机)还要通过串行口与别的设备进行数据交换时。

    以上介绍的方法就难以实现。这是因为:不管是主机还是从机它们的串行口已被使用,跟远程计算机或串行设备进行通信已没有串口用。下面介绍的方法就很好地解决了这些问题。



2  利用单片机的P1口进行串行通信

    为实现单片机之间的串行通讯,同时主机、分机还与其他串行设备进行通信,作者利用AT89C51的P1口中的3条普通I/O线来模拟进行异步串行数据通信,取得了很好的效果,串行通信网络结构见图2。

其中:主单片机的P1.0作为发送端,P1.1作为接收端,P1.2作为中断请求端,而各分机也以P1.0作为发送端,P1.1作为接收端;并事先为每一个分机确定一个地址编码信息。当主机要与某一个分机进行通信时,主机通过P1.2发出一个中断请求信号,延时相应的时间后,向P1.0发送模拟的数据帧,数据帧中包含要进行通讯的分机地址编码信息。各分机接收了来自INT1的中断请求信号后,进入中断服务程序,分机检测P1.1端,当P1.1端由高变低时,说明主机发送的数据帧的起始位开始,分机模拟异步接收方式跳过起始位依次接收各数据位。接收完来自主机的地址信息后,与本机地址信息比较,如果与本机地址相同,则等待准备接收数据或命令;如果接收到的地址与本机地址不符,则跳出中断服务程序,返回到主程序继续原来的工作。



    这种方式特别适用于主单片机要循环与各个分机进行数据通信的场合。这样就解决了波特率不能随意设置的问题,同时各单片机的串口可以当作它用。其中波特率可以随意设定包含下面三重含义:

(1)主机可以利用RXD、TXD同远程PC机或数传电台等进行通信,波特率可任意设置;

(2)分机也可与其他的串行设备进行通讯,波特率也可以随意设置;

(3)主机和分机之间的波特率可以任意设置。[page]

3  具体编程实现

    下面给出通过P1.0发送一帧和通过P1.1接收一帧数据的子程序,供参考。

4  使用中应注意的一些问题

(1)延时时间的长短是根据波特率的变化而变化的,延时子程序的循环次数与单片机所采用的晶振频率有关。

  (2)以上提供的程序是针对12 MHz晶振、9600 b/s通讯的。DELA子程序延时时间为50 μs 。实际应用时,可以根据不同波特率和不同的晶振选择不同的延时时间来模拟异步串行通讯。

(3)上面的多机通信是利用P1口来模拟异步串行通信,每一帧都有起始位,同时数据采集在一位的中间进行的,所以延时时间允许有一定的误差,而不影响接收数据的准确性。工程上常用波特率传送一个二进制数据位所需要的时间见下表。

 

5  结语
 SOC开发平台360元 豪华单片机开发系统498元 单片机学习板138 无线nRF-9E5模块100元 S3C44B0 ARM7开发板398元 Genius NSP通用编程器260元 Mini ARM Debugger330元 LABTOOL-48UXP2800元       该项技术已经成功应用于海洋领域深海数据采集系统中,不同的分机连接了不同的进口仪器设备,实现串行数据采集,取得了满意的效果。

参考文献

1 陈汝全,等.单片机实用技术.北京:电子工业出版社,1993

2 陈粤初,等.单片机应用系统设计与实践.北京:航空航天大学出版社,1993

关键字:单片机  多机通讯  总线型网络结构 引用地址:用单片机普通I/O口实现多机通信的一种新方法

上一篇:基于单片机通信网络的分布式数据采集与控制系统的实现
下一篇:单片机双向并行接口总线的长线传输技术

推荐阅读最新更新时间:2024-03-16 12:52

微控制器和1-Wire温度传感器的软件接口
1-Wire(一线制)数字温度传感器 DALLAS公司产的1-Wire(一线制)数字温度传感器己被广泛应用于各工业控制与捡测的设备仪器之中,但如何应嵌入与连接在系统之术是设计人员所关切的技术问题。 DSl8B20、DS18C20或DSl822是业内更高精度(0。5℃)的1-Wire多点数字温度传感器,其特点是: *具有1-Wire数字接口 *唯一的64位序列号 *宽广的温度测量范围为-55℃至+125℃ *具有非易失用户(2字节EEPROM)可编程触发点的过热告警 *测量分辨率可由用户配置为9至12位 *封装形式包括TO-92,150mil8脚SOIC和倒装片 DSl8x20或DSl822温度传感器内部结构图见图
[工业控制]
<font color='red'>微控制器</font>和1-Wire温度传感器的软件接口
单片机初学的几个疑惑
刚开了几个单片机初学群,看到有几个问题大家争论的比较多,在这里针对几个问题,我想谈一下自己的看法。 一.到底以什么单片机入门 在群里不断有人问,该学51还是AVR还是PIC?同一系列的用什么配置的好?我特别强调的是,大家搞清楚现在我们考虑的是入门学什么单片机?不是说你以后就只用这个单片机。入门我们选资料最全,最有代表性的,最有可能掌握的,非51莫属。我在群里这样说过,在前面博客也提过,有人对此有怀疑。 对于不同系列的单片机有什么不同?(51和AVR属于不同一系列) 咱就具体到点亮一个发光管。点亮一个发光管的方法是:给一个IO口输出一个使发光管点亮的电平,不管什么单片机都是这个思想;不同的就是我们用不同的软件生成程序,我们加载不
[单片机]
单片机的“功耗”如何计算
单片机的功耗是非常难算的,而且在高温下,单片机的功耗还是一个特别重要的参数。 暂且把单片机的功耗按照下面的划分 1.内部功耗(与频率有关) 2.数字输入输出口功耗 2.1输入口 2.2输出高 2.3输出低 3.模拟输入口功耗 从下表可以得出一些基本的参数: 首先我们计算内部功耗 单片机的功耗一般和工作频率有关,在固定频率下与功能有关,有两种计算办法。 第一种,固定频率,增减功能引起电流变化: 第二种,频率变化,不考虑使用模块: 其次计算数字口功耗: 数字输出口,按照表格中的数据,得出内部的Rdson,可计算出输出高和输出低在内部的功耗。 这里需要注意的是,输入口的功耗一般不大,但是设计的IO口有电流注入的时候
[单片机]
<font color='red'>单片机</font>的“功耗”如何计算
芯海科技:公司MCU广泛应用于小米等公司TWS耳机充电仓中
11月24日,芯海科技在互动平台表示,公司MCU已广泛应用于小米等众多公司的TWS耳机充电仓中。 资料显示,芯海科技是一家集感知、计算、控制于一体的全信号链芯片设计企业,专注于高精度ADC、高性能MCU、测量算法以及物联网一站式解决方案的研发设计。 在MUC芯片方面,芯海科技通用微控制器芯片主要特点为高集成度和高可靠性。2007年,芯海科技开始开发自主知识产权的MCU内核,自主研发了MCU开发工具(编译器/IDE/烧录器/仿真器等),并于2010年推出首颗8位MCU芯片,2018年推出国内首颗USB PD3.0 32位MCU芯片。 目前,芯海科技的MCU主要是8位MCU和32位MCU,目前8位MCU主要应用于TWS充电仓、小家电、
[手机便携]
ATmega103单片机在跳频系统数字信号处理中的应用
atmega103 单片机 是atmel公司推出的精简指令集(risc)avr(advance risc)系列单片机产品,这是一种增强型risc结构,采用了cmos技术的8位微控制器该结构能有效支持高级语言以及密集度极大的汇编器代码程序。 跳频系统(fh)是指载波频率按某种跳频图案(跳频序列)在很宽的频带范围内跳变的通信系统,由于该系统具有抗干扰、抗多径和抗衰落性等能力,故在军用和民用领域都得到了广泛的应用。本系统方案中,信号处理模块主要完成跳频模式(fh)下有关数字信号的处理,包括话音编解码、话音组织及与同步有关的操作等,这些技术目前是跳频系统的关键技术之一。 本文介绍atmega103 单片机 的特点及其在fh系统数字信
[单片机]
ATmega103<font color='red'>单片机</font>在跳频系统数字信号处理中的应用
改善嵌入式系统实时效能的新途径
  在这个日趋复杂的世界,对于嵌入式处理器的要求也愈来愈高。去年也许使用128k的程序及4个实时处理绪列便足以执行应用程序,但是今年的产品规格已将所需内存提升为两倍,中断处理提高为三倍。要处理的信息本质似乎非常稳定-其实远比您想象的还要多!去年的微控制器必须在两个通讯总线上处理25笔4位的讯息,而今年已经必须要在4个通讯总线上处理200笔4位的讯息。在面对这种不断升高的工作负荷时,自然倾向寻求更强大的处理器来执行工作。一般来说处理器效能的传统趋势是提升速度及数据总线,所以一个8位处理器可从8MHz提升到16MHz,一个16位的装置升级为一个32位的装置。但是,两种作法都必须付出应用上的成本。更快的装置可能消耗更多的电力,而且较不符
[嵌入式]
带温度补偿的超声波测距系统单片机课程设计报告
下面是做出来的实物图: 一、前言 课题背景: 在日常生活和工业控制中,经常会需要进行位置监控和距离测量,可用的方法很多,有激光测距、雷达测距、超声波测距。与微波雷达测距、激光测距相比,超声波具有方向指向性强、能量消耗比较缓慢、在介质中的传播距离比较远等优点。但是,由于声音的传播速度和温度有关,一般情况下,温度每变化1℃,声速会变化大约0. 61 m/s。因此,超声波测距的精度受温度影响比较大,要实现高精度的超声波测距,须考虑温度变化对声速的影响,从而进行必要的补偿。 国内外发展现状: 近十年来,国内科研人员在超声波回波信号处理方法、新型超声波换能器研发、超声波发射脉冲选取等方面进行了大量理论分析与研究,并针对超声测距的常见影
[单片机]
带温度补偿的超声波测距系统<font color='red'>单片机</font>课程设计报告
使用51单片机实现抢答器的设计资料和代码说明
在知识比赛中, 特别是做抢答题目的时候, 在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。 ! 系统工作原理本系统采用8051单片机作为核心。控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢答开关模块。该抢答器系统通过开关电路四个按键输入抢答信号;利用语音芯片ISD1420 完成语音的录放功能; 利用存储程序; 利用一个数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号
[单片机]
使用51<font color='red'>单片机</font>实现抢答器的设计资料和代码说明
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved