3.1 节气门信号信号的测量
这里测量的汽车发动机上节气门位置传感器为一可调电阻型,节气门位置输出信号为0~5V的电压信号,根据节气门的实际开度与输出电压的关系,对测量的电压信号进行标定,根据实测的电压信号即可换算成节气门的开度。所以这里用PIC18F4580单片机内嵌的10位AD转换电路完成对节气门位置传感器输出电压的测量,为提高测量精度,对单片机AD的5V基准电压进行了与系统电源隔离稳压处理。
本系统利用Microchip公司的MPLAB开发环境嵌入PICC18C程序编译器,用C程序编写了数据采集与CAN数据的收发程序,其中AD转换子程序用汇编语言编写,程序兼顾了C程序的模块化和可维护性好的优点,同时具有了汇编语言高效率的优点。
信号通过CAN控制器用扩展帧格式发送到CAN网络上。其中数据采集与CAN数据的发送子程序如下:
InitSPI();//SPI接口初始化
Init_MCP2515();//MCP2515初始化
……
TRISA=0B00000001;//AN0>>>>DCinputDC通道上输入,打开RA0
ADCON0=0B00000001;//AN0通道,允许ADC工作,
ADCON1=0B00001110;//除RA0为模拟输入口外,其他RA口跟RE口均为普通数字口
ADCON2=0B10100001;//转换结果右对齐,8TAD,1/8FOSC。
#asm
ADCON0 EQU 0FC2H
GO EQU 001H
bsf ADCON0, GO //开始转换
ADWAIT:
btfscADCON0,GO
gotoADWAIT//等待转换完成
#endasm
write_MCP2515(TXB0CTRL,0x03);//设置为发送最高优先级
write_MCP2515(TXB0SIDH,0xFF);//EID28--21
write_MCP2515(TXB0SIDL,0xEB);//EID20--EID18,扩展帧使能,EID17--EID16
write_MCP2515(TXB0EID8,0xFF);//EID15--EID8
write_MCP2515(TXB0EID0,0xFF);//EID7--EID0
write_MCP2515(TXB0DLC,0x02);//发送数据长度为8字节
write_MCP2515(TXB0D0,ADRESH);//发送的数据
write_MCP2515(TXB0D1,ADRESL);
……
send_TXB0();//请求发送
while((read_MCP2515(TXB0CTRL)&0x08)==0x08);//等待
发送完毕
……
3.2 水温信号的测量
本文中的水温信号利用DALLAS公司的DS18B20智能数字传感器测量。DS1820是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。测量温度范围为-55℃~+125℃,在-10~+85℃范围内,精度为±015℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。DS1820采集温度信号完成后,通过PIC18F4580芯片接收数据,并通过内嵌CAN控制器把数据以8位二制数的格式用标准帧格式发送到CAN总线上。
4 CAN网络的传输系统
采集到的信号通过PIC18F4580内嵌的CAN控制器发出。这里选用MICROCHIP公司出品的MCP2551CAN收发器完成网络信号的传递,在CAN网络终端加入阻值为120欧的终端电阻。CAN网络接收端的收发器接收到的信号后传递给另一片PIC18F4580芯片,通过基内部的CAN控制器取出网络信号,如果接收到扩展帧,则接收到的数据为节气门的位置信号;接收到标准帧,则接收到的数据为水温信号。对信号处理后以数据包的方式通过基自身的UART口发给MAX232芯片,把TTL信号电平转换成232电平。节气门部分的CAN通讯板硬件原理图如图3所示。

图3 节气门位置信号测量CAN通信板原理图
用户评论
共 0 条评论