本文介绍了基于pic16f874单片机的嵌入式can智能节点的软硬件设计,同时应用pcl-841 can接口卡使嵌入式can智能节点与pc之间实现了通信,完成了电压、电流、温度等信号的实时采集、可靠传输和实时显示,实现了pc端对嵌入式can智能节点pwm波输出的脉冲宽度的控制。
引言
can总线是一种串行数据通信协议,其通信接口中集成了can协议的物理层和数据链路层功能,可完成对数据的成帧处理。can协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块编码,采用这种方法可使网络内节点个数在理论上不受限制,还可使不同的节点同时收到相同的数据。
本文介绍了嵌入式can智能节点,并且应用pc和嵌入式can智能节点组成了can通信系统,完成了电压、电流、温度等信号的实时采集、可靠传输和实时显示,实现了pc端对嵌入式can智能节点pwm波输出的脉冲宽度的控制。
基于pic单片机的嵌入式can智能节点的设计
嵌入式can智能节点以pic16f874单片机作为嵌入式微控制器,以mcp2510作为can控制器,以pca82c250作为can收发器,具有现场/远程控制功能。根据用户的需求,嵌入式can智能节点通过连接相应的传感器可以完成多种信号的实时采集、可靠传输和实时显示,pwm波输出可以用于控制相应的负载。嵌入式can智能节点通过外接电路可以实现电路保护、现场组态、自动调节、故障诊断报警、状态检测等功能,完成对电机、阀门、泵等电器的驱动和智能控制。
硬件设计
microchip公司的单片机pic16f874采用risc指令系统,哈佛总线结构,低功耗,高速度。内部集成了adc、串行外围接口(spi)和flash程序存储器等,具有pwm输出、lcd驱动等功能。pic16f874通过spi接口可以实现与can控制器mcp2510的无缝连接。pic16f874的i/o资源丰富,共有a、b、c、d、e五个i/o口,每个i/o口除了基本用途外还有一些特殊功能。
can通信模块
嵌入式can智能节点的can通信模块由can控制器mcp2510和can收发器pca82c250组成。mcp2510可以完成can总线的物理层和数据链路层的所有功能,支持高速spi接口(最高数据传输速率可以达到5mb/s),支持can2.0a/can2.0b协议。can收发器pca82c250是can控制器与物理总线之间的接口,对物理总线提供差动发送能力,对can控制器提供差动接收能力,同时它可以增大通信距离,提高嵌入式can智能节点的抗干扰能力。
pic16f874通过spi与can控制器mcp2510连接,其串行数据输入(sdi)脚与mcp2510的so脚相连,其串行数据输出(sdo)脚与mcp2510的si脚相连,其串行时钟(sck)脚与mcp2510的sck脚相连。mcp2510的复位信号、片选信号由单片机a口的ra5、ra2提供,mcp2510的中断信号、接收缓冲区满中断信号输出到单片机b口的rb0、rb5。
通过设置pic16f874的spi接口状态寄存器和控制寄存器使spi接口工作于主动方式。pic16f874与mcp2510进行通信时的时序是非常重要的。发送数据时,先发送写指令,再发送寄存器地址,最后发送数据。当mcp2510接收到由总线传来的数据时会产生中断,单片机响应中断,读取数据时先发送读指令,再发送寄存器地址,数据会自动写入单片机spi接口的缓冲器中。
显示模块
嵌入式can智能节点采用ocmj4χ8显示模块,该显示模块可以显示汉字、ascii码等,其所有的设置初始化工作都可以在上电时自动完成。
ocmj4χ8显示模块的数据线db0~db7与单片机的d口相连,请求(req)脚、应答(busy)脚分别与单片机b口的rb4、e口的re2相连。显示模块的rt1、rt2引脚外接可调电阻用于调节lcd的亮度。
显示模块接口协议为请求/应答(req/busy)握手方式。busy为高电平表示显示模块忙;当busy为低电平时表示显示模块空闲,等待接收命令。单片机先向显示模块发送命令或数据,然后发送请求信号,请求显示模块进行处理,显示模块置busy为高电平,对命令或数据进行处理,处理结束后置busy为低电平。
模拟量获取模块
pic16f874单片机a口的ra0、ra1、ra3用于模拟量输入。嵌入式can智能节点的模拟量获取模块的主要功能是将需要采集的电流信号通过电流互感器转换为电压信号,将需要采集的温度信号通过温度传感器ad590转换为电压信号。
开关量输入/输出模块
嵌入式can智能节点通过i/o扩展提供了4路开关量输入和7路开关量输出。开关量输入用于电路的保护、故障报警、状态检测等,只要被控制对象拥有相应的检测元件,接入相应的接口即可。开关量输出用于驱动继电器,可以根据负载的大小确定是否需要连接接触器控制电机、阀门、泵等电器执行元件。根据用户的需求,此部分电路可以做相应的变化。
关键字:PIC单片机 CAN智能节点 PC通信
引用地址:
基于PIC单片机的嵌入式CAN智能节点及其与PC通信
推荐阅读最新更新时间:2024-03-16 12:48
PC机与多MCS-51单片机间的串行通信硬件设计
1 引 言 在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。它们大多由IBM-PC微机和MCS-51单片机组成。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。 故IBM-PC机(上位机)与各MCS-51单片机(下位机)之间的通信显得尤其重要。本文主要
[单片机]
pic单片机教程之数据存储器的直接间接寻址方式
数据存储器构成 数据存储器由特殊功能寄存器(SFR)和通用寄存器(GPR)组成。SFR控制器件的操作,而GPR则是数据存储和改写的通用区域。 SFR和GPR数据存储区分成不同的存储区。GPR区分成不同的存储区,以实现对超过96字节的通用RAM的寻址。SFR是用来控制外设和内核功能的寄存器。STATUS寄存器的存储区选择控制位(STATUS 7:5 )用于选择存储区。图6-5是数据存储器的构成映射,这个映射与器件型号有关。 从一个寄存器向另一个寄存器传送数据时,必须通过W寄存器。这意味着所有寄存器之间的数据传送,都需要两个指令周期。 整个数据存储器可以采用直接寻址或间接寻址来存取。直接寻址可能需要使用
[单片机]
PIC单片机的一些基础知识
振荡器类型 LP方式:低功耗晶体振荡器方式 XT方式:晶体/陶瓷振荡器方式 HS方式:高速晶体/陶瓷振荡器方式 High-Speed Crystal/Resonator HS4方式:带有PLL使能的高速晶体/陶瓷振荡方式 RC方式:阻容振荡方式 RCIO方式:带有I/O引脚使能的外部阻容振荡方式 EC方式:外部时钟方式 External Clock with FOSC/4 Output ECIO方式:带有I/O引脚使能的外部时钟方式 复位方式 上电复位(POR) 在正常工作状态下通过在外部MCLR引脚上加低电平复位 在休眠状态下通过在外部MCLR引脚上加低电平复位 在正常工作状态下监视定时器WDT超时溢出
[单片机]
PIC单片机实现延时x毫秒的功能设计
1、编写子程序DelayMS,实现延时x毫秒的功能,x由w寄存器中的值设定。 ;**************DelayMS************** DelayMS ; 延时x毫秒,x由变量w寄存器设定 movwf L1 ; Loop1 movlw .39 ; movwf L2 ; Loop2 movlw .31 ; movwf L3 ; Loop3 nop ; decfsz L3, f ; goto Loop3 ; decfsz L2, f ; goto Loop2 ; decfsz L1, f ; goto Loop1 ; return ; ;--------------------------------------
[单片机]
PIC单片机上DS1302器件接口代码
增强型PIC实验板上DS1302器件的接口电路,需要将软件和硬件相结合进行考虑如何来编程,完成该实验的硬件原理图如下图所示,U2为实验板上DS1302芯片,“I/O”与单片机的RB5口相连,“SCLK”与单片机RB6相连,“RST”与单片机RB7相连,七段数码管D5、D7、D8组成了显示单元,字形码的数据通过RC口送入,各数码管的显示片选信号分别不同的RA口进行控制。 对于单机软件的编程,我们使用MPLabIDE软件来进行C语言编程,它是我们的编程环境,同时我们可以通过使用ICD2仿真烧写器和增强型PIC实验板连接进行程序的仿真调试和烧写步骤,具体的操作步骤,我们已经在前几期做了详细的说明和介绍,在此就不再重复说明,
[单片机]
PIC单片机之第一个工程分析,点亮LED
电路图如下: 新建一个工程: 然后用工程向导设置工程 Project-》project wizard: 选择芯片: 设置编译器: 选择文件位置: 这里设置工程就完成了 添加C文件,这里只是添加一个文件罢了 内容如下: 到这里文件编辑完成了 下面是下载设置,这里要选择上PICkit3,因为我们的仿真器是这个: 最后就是比较关键的配置字了,这里我们使用默认的配置字,configure-》configuration bits...如下: 整个工程可以说配置完毕了,最后下载: 这样就能够把代码数据下载成功进去了 实验现象如下所示: 到这里就结束了整个的工程 但是有几个地方要说的
[单片机]
基于PIC单片机的新型医用呼叫对讲系统设计
医用呼叫系统是病员需要获得护理或诊断时发出请求的呼叫工具,可将病员的请求快速传达给值班医生或护士,是提高医院护理水平的必需设备之一。它作为病员与护士及医生之间联系的桥梁,正日益显现出其实用性和优越性。它在提升医院的综合水平,提高服务质量和服务效率,解决因陪护引起的医患矛盾等方面扮演了相当重要的角色。早期的医用呼叫系统大多采用集中式结构,各个病房单独通过信号电缆和护士室相连,此类系统具有成本高、安装调试困难、故障率较高等缺点。 本文介绍了一种新型的呼叫系统,主机与病房分机均采用PIC 系列单片机实现,主机和分机之间不采用计算机通信口连接,而是采用电源载波技术,通过主机向各分机提供的电源线实现数据通信和语音通信。整个系统安装
[单片机]
PIC单片机配置字Configuration Bits使用经验
1.PIC16F1518单片机在其存储器0x8007和0x8008地址有2个配置寄存器,用来配置整个芯片的功能。 配置寄存器跟特殊寄存器(配置外设)的区别在于,配置寄存器在程序烧录的时候一次性完成,程序中无法再修改其内容。 配置的方式主要有: (1)程序中通过特殊指令配置:在C语言程序里加入 __CONGFIG(bits);(其中bit是配置信息,config前的下划线还是两条,如:__CONFIG(WRT_OFF & VCAPEN_OFF & STVREN_ON & BORV_LO & LPBOR_OFF & LVP_OFF);注意有个分号“;” 其中WRT_OFF ,VCAPEN_OFF是在pic16F1518头
[单片机]