当前位置:首页 > 单片机 > 单片机
[导读]本文介绍了一种使用并口进行多机通信的方法,在实践中已得到验证。

摘要:单片机的多机串行通信应用十分广泛,但在串行口被占用又要进行多机通信时就要采取其它措施。本文介绍了一种使用并口进行多机通信的方法,在实践中已得到验证。
关键词MCU,并口通信

1. 问题的提出
    某系统中使用了三路串行接口的传感器(GPS、压力和风向)及三路模拟电流(4~20mA)接口的传感器(湿度、温度和水位)。现需要将这些数据汇总后通过串口上传给PC机,并且要求每路信号数据都能够实时独立的接收。

2.系统设计
    经过分析,我们分别使用一块2051单片机接收各路串口传感器的数据,同时使用一块多路高精度ADC对转换成电压的温度等信号采样,系统结构图如图1所示。主从机之间的具体管脚连接参见图2。



    图1 系统结构框图

    系统中51单片机作为主机控制着整个系统的动作并发起每次通信,每块2051作为实时从传感器获取数据并在主机控制下完成通信。主机和各从机之间通过并口连接通信。主从机工作流程如下:

·   主机上电初始化后,通过P0口发送从机地址选中一路从机并等待应答。
·   各从机上电初始化后接收传感器串行数据,然后通过P1口接收主机地址,当地址与自己相符后,调整245方向并由245向主机发送传感器数据,此过程由握手线负责控制。
·   从机发送完所有数据后再次将245方向改为接收,重新开始接收传感器数据和主机发送的地址。
·   主机按照同样方式接收所有各路2051数据。
·   串口数据接收完毕后,主机控制AD转换并获取三路信号数据。
·   主机将所有数据集合成规定格式后通过232发送给PC机。

     主从机的工作流程图如图3所示:

                     图2 主从机间的管脚连接

           图3 主从机工作流程图

主要程序代码分别如下,主机为:
 
……
sbit adc_busy=P3^2;
sbit adc_hben=P3^3;
sbit hand1=P2^0;//GPS
sbit hand2=P2^1;//PRESSURE
sbit hand3=P2^2;//WIND
sbit hand4=P2^3;//BAK1

uchar idata gps[96];
uchar idata pressure[9];
uchar idata wind[26];
uchar idata tem[6];
uchar idata hum[6];
uchar idata water_tem[7];
……
P1=0x01;
for(i=0;i<96;i++){
    while(hand1!=0);
    gps[i]=P1;
    while(hand1==0);
}
sendbyte2pc(’#’);
sendbyte2pc(’#’);
sendbyte2pc(’1’);
sendbyte2pc(’ ’);
sendbyte2pc(’ ’);
send2pc(gps,96);
……
从机为:
……
sbit dir=P3^2;
sbit en=P3^3;
sbit hand=P3^4;
……
loop:
    RI=0;i=0;
    while(!RI);//wait for receiving ready
    if (SBUF!=0x40)//data head
        goto loop;
    data_str[i]=0x40;i++;

    RI=0;
    while(!RI);//wait for receiving ready
    if (SBUF!=0x40)//data head
        goto loop;
    data_str[i]=0x40;i++;
    do{
        RI=0;
        while(!RI);
        data_str[i]=SBUF;
        i++;
    }
    while(i!=96);

    dir=0;en=0;//enable data receiving    P1=0xff;
    for(i=0;i<100;i++){
        if(P1==0x01)
            goto send;
    }
    en=1;
    goto loop;
send:
    for(i=0;i<96;i++){
        dir=1;
        P1=data_str[i];
        hand=0;
        for(j=0;j<5;j++){;}
        hand=1;
    }
    en=1;dir=0;
    goto loop;
……
 
3.结语
    本文中提出的并行通信方法具有电路结构简单清晰、程序容易实现等特点,已经在实际中证明可行。在调试过程中可以借用串口助手等软件接收数据来验证通信的可靠性。

参考文献
[1]    王建校,王建国.51系列单片机及C51程序设计[M].北京:科学出版社,2002.
[2]    徐维祥,刘旭敏.单片机微型计算机原理及应用[M].大连:大连理工大学出版社,2002.7.
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

中国北京(2025年9月10日)—— 业界领先的半导体器件供应商兆易创新GigaDevice(股票代码 603986)亮相于深圳国际会展中心举办的第26届中国国际光电博览会(展位号:12C12),全面展示GD25 SPI...

关键字: 光通信 MCU Flash

武汉2025年9月9日 /美通社/ -- 7月24日,2025慧聪跨业品牌巡展——湖北•武汉站在武汉中南花园酒店隆重举办!本次巡展由慧聪安防网、慧聪物联网、慧聪音响灯光网、慧聪LED屏网、慧聪教育网联合主办,吸引了安防、...

关键字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移远通信宣布,其自研蓝牙协议栈DynaBlue率先通过蓝牙技术联盟(SIG)BQB 6.1标准认证。作为移远深耕短距离通信...

关键字: 蓝牙协议栈 移远通信 COM BSP

上海2025年9月9日 /美通社/ -- 为全面落实党中央、国务院和上海市委、市政府关于加快发展人力资源服务业的决策部署,更好发挥人力资源服务业赋能百业作用,8月29日,以"AI智领 HR智链 静候你来&quo...

关键字: 智能体 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付与一汽出行达成合作,为其自主研发的"旗驭车管"车辆运营管理平台提供全流程支付通道及技术支持。此次合作不仅提升了平台对百余家企业客户的运营管理效率...

关键字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制药(PharmaEngine, Inc.)发现的新一代PRMT5抑制剂PEP0...

关键字: 泰科 AI MT BSP

瑞典乌普萨拉,2025年9月4日 — 全球领先的嵌入式系统开发软件解决方案供应商IAR宣布,瑞萨最新推出的具备量产条件的RH850/U2A MCAL(微控制器抽象层)软件包,已全面支持IAR的RH850工具链(v2.21...

关键字: MCU ADAS 电动汽车

本届年会将在上海(11月13-14日)、北京(11月19-20日)和深圳(11月27-28日)举行,面向嵌入式设计工程师推出25门技术课程

关键字: 嵌入式 MCU 模拟

新加坡获选为重庆2025世界智能产业博览会主宾国,进一步巩固两国长期战略合作伙伴关系 今年新加坡展馆汇聚12家创新科技、数字贸易、智慧城市领域企业,包括Accred...

关键字: 新加坡 SI AN 数据安全

上海2025年9月5日 /美通社/ -- 由上海市经济和信息化委员会、上海市发展和改革委员会、上海市商务委员会、上海市教育委员会、上海市科学技术委员会指导,东浩兰生(集团)有限公司主办,东浩兰生会展集团上海工业商务展览有...

关键字: 电子 BSP 芯片 自动驾驶
关闭