基于P87C591单片机的信号采集节点的设计

发布者:lqs1975最新更新时间:2018-04-12 来源: 21ic关键字:P87C591  单片机  信号采集节点 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  在工程机械液压系统状态监测与故障诊断中,传感器信号的调理、采集和信号的特征提取,以及把采集的数据发送给主机(中心处理单元)要由信号采集单元实现。本文介绍了基于P87C591的CAN总线系统信号采集节点的设计。


  CAN是1986年2月在SAE (汽车工程人员协会)大会上, 由Rober Bosch公司提出的新总线系统,称之为“汽车串行控制局域网”(Automotive Se.rial Controller Area Network),它是最主要的总线协议之一。由于CAN总线采用了许多新技术及独特的设计,使得它与一般的通信总线相比具有突出的可靠性、实时性和灵活性,从而使其应用范围不断扩展。目前,CAN已经形成国际标准,并被公认为是最有前途的现场总线之一。

  P87C591是Philips半导体公司推出的单片8位高性能微控制器,具有片内CAN控制器,是从80C51微控制器家族派生而来。它采用80C51指令集并包括了Philips公司SJA1000 CAN控制器的PelICAN功能。P87C591微控制器采用先进的CMOS工艺,设计用于汽车和通用的工业应用。 P87C591组合了P87C554 (微控制器)和SJAIO00(独立的CAN控制器)的功能,还具有以下增强型特性:

  增强的CAN接收中断

  扩展的验收滤波器

  验收滤波器可动态变化

  2 信号采集节点硬件电路设计

  2.1 硬件电路设计

  信号采集节点直接固定在工程机械液压系统的主要测点上,主要由MCU、信号调理、A/D转换、数字量输入模块、存储器和CAN总线接口组成。信号采集节点选择具有片内CAN控制器的高性能8位单片机P87C591作为处理器,可以完成基本的模拟量和数字量的采集及CAN总线通讯。该采集模块有8路模拟输入和4路光电耦合数字(开关)量输入,模拟输入前3路是专为ICP振动传感器设计,其余5路均可通过跳线选择0 V~5 V电压输入或4mA~20 mA电流环输入.以适应不同类型传感器的需要。图1为信号采集节点硬件结构示意图。

  
图1 信号采集节点硬件结构。

  信号采集单元与主机(中心处理单元)之间通过四芯电缆连接,其中两芯为CAN总线信号线(CANH和CANL).另外两芯为电源线,可为信号采集单元各部分提供电源。

  2.2 电路设计需要注意的问题

  TJA1050是高速CAN收发器.是控制器区域网络(CAN)协议控制器与物理总线之间的接口。

  TJA1050可以为总线提供不同的发送性能,为CAN控制器提供不同的接收性能O TJA1050可以选择两种工作模式:高速模式和静音模式。高速模式是普通的工作模式,将引脚8接地可以进入高速模式,如果引脚8没有连接.高速模式则为默认的工作模式。将引脚8连接到VCC可以进入静音模式,静音模式可以防止在CAN控制器不受控制时对网络通讯造成堵塞,在静音模式中,发送器是禁止的,但是器件的其他功能可以继续使用。

  总线的两端要连接两个120 n 的电阻,对匹配总线阻抗起着重要的作用。如果忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低,甚至无法通信。

  3 信号采集节点软件设计

  信号采集节点的软件设计主要有:节点初始化、报文发送、报文接收、CAN总线错误处理、CAN总线中断处理等。本文重点介绍节点初始化、报文发送和报文接收。

  3.1 节点初始化

  在上电或硬件复位后,CAN控制器处于复位模式。如果CAN控制器不处于复位模式,置位模式寄存器RM位使其进入复位模式。CAN控制器复位后,必须初始化实现CAN通信,其内容主要有:操作模式、验收滤波器、总线定时及中断等。其中,定时器用来设置CAN总线上数据传输的波特率,注意总线上各节点的波特率须一致,否则将导致数据传输错误。信号采集节点初始化流程如图2所示。



图2 初始化流程图。

  3.2 报文发送

数据的发送由CAN控制器根据CAN协议规范自动完成。CPU将要发送的数据传送到发送缓冲区并置位命令寄存器的TR(发送请求)位,发送处理可以通过中断请求或查询状态标志进行控制。报文发送流程如图3所示。


  
图3 报文发送流程图。

  3.3 报文接收

  CPU以一定周期读取CAN控制器的状态寄存器,检查RBS(接收缓冲器状态)。如果RBS指示0(空),则没有接收数据;如果RBS指示1(满),则R)(nFo中有一个或多个完整的可用信息。报文接收流程如图4所示。

  
图4 报文接收溉程图

  其他子程序的设计这里不再介绍。

  4 结束语

  CAN以其独特的设计思想、良好的性能、极高的可靠性受到了业界青睐;具有片上CAN控制器的P87C591具有功能强大、设计方便等特性。可广泛应 用于工业领域。基于P87C591的信号采集节点充分利用了CAN以及P87C591的优良特性,很好地实 现了数据采集功能。


关键字:P87C591  单片机  信号采集节点 引用地址:基于P87C591单片机的信号采集节点的设计

上一篇:P89LPC932A1测脉冲宽度汇编程序
下一篇:串行时钟PCF8583在微机保护装置中的应用

推荐阅读最新更新时间:2024-03-16 15:59

基于单片机的电子存包柜的软件设计
Small RTOS 对RAM 需求小,非常适合单片机这类资源比较少的系统上。RTOS 具有多任务处理,较强的实时性,可裁减的内核,使得实时应用程序的设计、扩展和维护变得更容易。RTOS 思想的引入,一改传统单片机软件设计方法,使其不再是单一线程结构方式,通过应用程序分割为若干独立的任务,RTOS 使得应用程序的设计过程大为简化。本文结合基于单片机的电子存包柜的软件设计,简要分析了Small RTOS 的设计思想及消息队列通信机制的应用。 1. Small RTOS51 的基本原理 Small RTOS51是一个很小的内核,完全集成在KEIL C51编译器中,仅占用较少的程序存储空间,可以在没有外挂数据存储器的51
[单片机]
基于<font color='red'>单片机</font>的电子存包柜的软件设计
楼道中的智能化照明系统设计
  随着能源问题的日益严重,通过各种科技手段进行节能已变的十分重要。照明设施作为最广泛的耗能设施,如果能够进行更为合理的节能,那么其所带来的环境保护效益和经济效益是显著的。   文中采用热释红外传感器及相关电路控制实现“人来灯亮,人走灯灭,不走不灭”的设想。通过3 W或5 W大功率LED技术和大功率射灯进行有机的结合,从而组合出新的照明模式。采用电力线载波技术,主机自动检测每个灯的工作情况,如有损坏自动通知主机进行维修,从而减少维护工作量。采用400 V直流总线集中供电方式,减少每个灯的整流滤波环节,从而降低成本,节省能量。   1 系统总体框图   本系统采用模块化设计,由主机系统和分机系统组成。主机系统,即终端监视
[嵌入式]
AVR单片机教程——数字输出
从上一篇教程中我们了解到,按键与开关的输入本质上就是数字信号的读取。这一篇教程要讲的是,控制LED的原理是数字信号的输出。数字IO是单片机编程之有别于桌面编程的各项内容中最简单、最基础的。 在讲数字信号输出之前,我们先来了解一下它控制的器件。LED,是一种二极管,在理想模型中,加以正向电压会发光,反向电压则不会。在稍微实际一点的模型中,当正向电压超过一定阈值时,二极管会发光,其电流会随着正向电压的增大而急剧增大;对反向电压的耐受力也是有限的。现实中的LED的具体参数因生产厂家而异,一般红色与黄色LED的导通压降为2V多,绿、蓝、白色的为3V左右或多一点;反向耐压一般为5V。 电流大到一定程度,任何器件都会烧毁,我们最好要把
[单片机]
AVR<font color='red'>单片机</font>教程——数字输出
单片机多任务的时间片方式实现
引言 由于单片机具有价格低、运行要求低、易于开发、稳定可靠等优点,广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域。但是,单片机的位数少、频率低、内存小、I/O口少等缺点限制了其加载操作系统的可能。因此,单片机不能像ARM等较高性能的处理器一样,利用加载的操作系统实现管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等功能。 但是,我们可以根据单片机所拥有的内存大小、CPU频率等因素,来为单片机量身定做一个小型的操作系统,以实现单片机的多任务运行。 1 微机实现多任务的方式 微机实现多任务的方式一般是由加载的操作系统来实现的。通过操作系统提供的
[单片机]
<font color='red'>单片机</font>多任务的时间片方式实现
设计一款旋转LED原理与设计
旋转LED——飘在空中的文字 一.效果: 二.整体结构: 三.制作方法: 1.电机的改装 电路的供电和LED 的定位是本制作的一个难点。装在电机上的电路始终在高速旋转,我们就无法使用通常的方法来给电路供电。但我们可以通过对电机的改造来解决。我们都知道,一般的直流电机是线圈作为转子,而永磁体作为定子的。他是通过电刷来实现给线圈供电的,而且直流电机的旋转需要交变的电流,这是由固定在转子轴上的换向器来巧妙的实现直流变为交流的。我们的电路是固定在电机的转子上的,它和转子是保持相对静止的。因此,我们可以从电机的转子中取得电源。方法很简单,也就是从电机的换向器上用漆包线把电引到电路板上,经整流,滤波后给单片机电路供电。换向器上的
[单片机]
设计一款旋转LED原理与设计
如何将STM32单片机的JTAG口作为GPIO使用
使用STM32F系列,会遇到将JTAG口复用为SPI1或直接用做普通IO。 针对于F1系列,需要先禁止使能 JTAG,然后将其复用为其他口或者普通IO。 针对F4系列,STM32F4库函数中,已经取消了GPIO_*PinRemapConfig()函数,对于复用功能使用GPIO*_PinAFConfig()函数了! 但是在GPIO_PinAFConfig()函数已经没有禁止JTAG/SW等选项了,而是复用到AF0~AF15线上,其中AF0是系统功能(也是复位初始功能)。 其中调试接口就是系统功能,这样需要禁用JTAG功能只需把引脚复用到AF1~AF15中的一个就行了。 直接复用就可使用相应的复用功能,不用想着失能
[单片机]
飞思卡尔单片机DZ60---边沿对齐PWM
#include hidef.h /* for EnableInterrupts macro */ #include derivative.h /* include peripheral declarations */ /*************************************************************/ /* 初始化总线时钟PEE模式 */ /* 外部晶振频率为4MHz,总线频率16MHz */ /*************************************************************/ void
[单片机]
单片机C51的计数器
该部分的硬件电路如图所示,U1的P0口和P2口的部份引脚构成了6位LED数码管驱动电路,数码管采用共阳型,使用PNP型三极管作为片选端的驱动,所 有三极管的发射极连在一起,接到正电源端,它们的基极则分别连到P2.0…P2.5,当P2.0…P2.5中某引脚输是低电平时,三极管导通,给相应的数 码管供电,该位数码管点亮哪些笔段,则取决于笔段引脚是高或低电平。图中看出,所有6位数码管的笔段连在一起,通过限流电阻后接到P0口,因此,哪些笔段 亮就取决于P0口的8根线的状态。   编写程序时,首先根据硬件连线写出LED数码管的字形码、位驱动码,然后编写程序如下: #include reg51.h #define uchar unsigne
[单片机]
<font color='red'>单片机</font>C51的计数器
热门资源推荐
热门放大器推荐
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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