EDN China > 设计实例 > 微处理器与DSP > CPU/GPU > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) PC机与嵌入式计算机系统串行通讯的硬软件实现

21ic 上海同济大学 季宏锋 吴军辉 徐立?? 2011年06月10日 ?? 收藏0

  1 引言

  目前,先进的嵌入式计算机以其优良的品质、高可靠性及模块化,广泛地应用于工业控制、航空航天、医疗、智能仪表、通讯、数控、自动化生产设备、数据采集等领域。在实际应用中,有时需要借助微机的强大的数据处理能力和丰富的软件资源,使得组成的系统功能更为强大。这样,为了提升系统的整体性能,必须实现PC机和嵌入式计算机之间的通讯。它们之间的通讯可以通过并行通讯或串行通讯两种方式来实现。由于串行通讯相对于并行通讯有接线数量少,抗干扰性能好等优点,所以,这里采用串行通讯的方式。

  2 嵌入式计算机的硬件和通讯软件的设计

  2.1 系统的功能简介

  本文以温控系统为背景作介绍。现场的嵌入式计算机的模拟量采集模块和数字量采集模块采集温度湿度、以及执行机构的开关量状态,经自身的MCU(微控器)进行简单的处理后,经串行通讯的方式,将这些数据上传至微机,微机则先将模拟量资料存入数据库中(为了中长期地跟踪温控系统的控制效果,便于以后的分析),再通过控制算法来计算输出控制量,并通过通讯下传到嵌入式计算机中,然后再由其控制量输出至相应的执行机构进行控制。整个系统这样设计的优点在于:通过微机上的图形控制接口,生动实时地向用户显示控制对象的情况;友好的用户接口使得用户可以在微机上直接手动输出来控制被控对象;同时又发挥了嵌入式计算机系统的稳定性、可靠性和高度灵活性等特点。

  2.2 嵌入式计算机的硬件结构

  嵌入式计算机系统由以下几部分组成:模拟量采集部分,数字量采集部分及输出部分,通讯部分和微控器的综合控制部分。

  模拟量采集部分最少可以采集32路的模拟量,并可以通过硬件的跳线设置最多采集64路的模拟量。通过模拟开关的切换,可以将模拟量信号经过A/D芯片转化为数字量信号,再做进一步的处理。A/D芯片用的是德州仪器公司(Texas InstrumentsIncorporation)的TLC2543C。TLC2543C是渐次逼近式的A/D转换器,具有12位的精度,可以同时对11路信号进行转换。数字量采集部分及输出部分使用了NEC8255芯片,通过软件对NEC8255进行设置来选择数字量的输入与输出的方向。通讯部分将MCU的TTL电平转换为进行RS-485通讯所需的485电平。微控器的综合控制部分的作用是:对模拟量采集部分、数字量采集部分及输出部分、以及通讯部分进行协调控制,同时可以接受用户的按键输入,它也将负责将采集到的模拟量转换后,在现场的LED上显示出来。系统框图如图1所示。

系统框图

  2.3 嵌入式计算机的通讯部分硬件设计

  通讯部分将MCU的TTL电平转换为进行RS-485通讯所需的485电平,进行电平转换的是MAX1480C。MAX1480B是一种完全电气隔离的RS422/RS485数据通信接口,在一个标准的DIP封装中有完整的接口,包括收发器、光耦合器和变压器,逻辑侧的单电源+5V给接口两侧供电。信号于电源在内部跨过隔离层进行传送,电源通过中心抽头的变压器从隔离层的逻辑侧(非隔离侧)变换至隔离侧,信号由高速的光耦合器从隔离的一侧传至另一侧。MAX1480B具有有限斜率驱动器,即驱动器发送的数字信号,其边沿斜率是受限制的,以使电磁干扰(EMI)最小,且能减小由于电缆终端不匹配而引起的反射,在数据速率高达250kbps时能做到无误差的数据传送。驱动器具有限制短路电流的功能,并使用热关闭电路保护,使之功耗不致过大。热关闭电路可把驱动器的输出置于高阻状态,接收器输入端具有故障保护的特性,如果输入开路,可保证输出为高点平。MCU与MAX1480B的硬件接口如图2所示。

MCU与MAX1480B的硬件接口

  2.4 嵌入式计算机的通讯部分软件设计

  由于嵌入式计算机系统中的微控器(MCU)是AT89C55,要和PC机进行通讯,必须对微控器的串行口进行初始化,设置通讯方式(协议)、通讯速度、传送的资料格式和长度,然后打开通讯口进行通讯。嵌入式计算机系统中的编程语言使用的是KEILINCORPORATION公司的KeilC6.12。通讯部分的软件流程如图3所示。

通讯部分的软件流程

  相应的重要通讯代码:

程序

程序


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

PC机? 嵌入式计算机? 串行通讯? TLC2543C?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈