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℃?,F場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環境的現場溫度測量,如:環境控制、設備或過程控制、測溫類消費電子產品等。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 條評論