







摘 "要:基于瑞薩RH850芯片的AD采集模塊,對汽車換擋撥片AD采集的硬件設計、軟件設計、編譯測試進行了研究,并結合實際汽車換擋撥片故障案例進行了換擋撥片電壓采集及故障分析,從而系統的、準確的、快速的完成換擋撥片AD數據采集,并能夠迅速鎖定換擋撥片存在的故障。
關鍵詞:AD采集;瑞薩RH850;換擋撥片;軟件設計;數據采集;故障分析
中圖分類號:U461.91 " " "文獻標志碼:A " " "文章編號:1005-2550(2022)05-0098-06
Software And Hardware Design And Fault Analysis of
Automobile Shift Paddle Based on AD Acquisition of Renesas RH850
TAN Huo-nan, LI Ya-fei, LING Xin-xin, FAN Han-mao
( GAC Automotive Research amp; Development Center, Guangzhou 511434, China)
Abstract: The hardware design, software design, compilation and testing of AD acquisition of automobile shift paddle are carried out based on AD acquisition of Renesas RH850 chip, and the voltage acquisition and fault analysis of shift paddle are carried out in combination with the actual automobile shift paddle fault cases. The system can accurately and quickly complete AD data acquisition of shift paddle, and help quickly lock its faults.
Key Words: AD acquisition; Renesas RH850; Shift Paddle; Software Design; Data Collection; Fault Analysis
汽車開關類設備廣泛基于AD采集開展軟硬件設計,如換擋撥片、模式按鍵、擋位按鍵等,此類設計有利于開關功能的精確控制和故障診斷[1-5]。本文基于瑞薩RH850芯片的AD采集模塊,進行汽車換擋撥片的硬件(電路)設計、驅動軟件設計(iodefine.h文件、驅動程序、主函數main.c)和編譯測試?;诖送瓿上嚓P的應用軟件設計或故障診斷設計,進而解決換擋撥片的電壓采集和故障分析實際問題。
1 " "硬件設計
硬件設計的MCU為瑞薩RH850系列,型號R7F701312,采用cortex–M架構,100PIN封裝。其ADC采用連續逐次逼近方式,12bit,默認的時鐘40MHz,參考電壓為+5V[6]。換擋撥片系統的等效電路包括換擋撥片電路、檢測電路,并與MCU(RH850)的AD采集模塊PIN腳連接,系統等效電路如圖1所示,其中SW1表示加擋撥片,SW2表示減擋撥片。
根據圖1的等效電路,當加/減擋撥片均不按壓時,AD模塊的采集電壓(V_Paddle_AD)由式(1)求得;按壓加擋撥片SW1時,V_Paddle_AD由式(2)求得;按壓減擋撥片SW2時,V_Paddle_AD由式(3)求得。
(1)
(2)
(3)
式中:V_Paddle_AD為AD模塊采集電壓,R1~R5為圖1等效電路中的電阻,VCC為參考電壓。
2 " "軟件設計
軟件的設計主要包括寄存器地址iodefine.h文件、編寫全局變量及聲明函數的AD.h文件、編寫驅動的AD.c文件以及主函數main.c。
2.1 " iodefine.h文件設計
iodefine.h文件根據RH850芯片數據手冊中的寄存器地址編寫,名稱的定義與數據手冊中的名稱相同。本例中的換擋撥片采集端口采用的是ADCD119,iodefine.h文件相關寄存器的定義如下:
#define ADCD0 (*(volatile struct _taq2611 *)0xFFF20000) /*ADCD0 */
#define ADCD1 (*(volatile struct _taq2612 *)0xFFF21000) /*ADCD1 */
struct _taq2612
{ " " " " " " " " " " " " " " /* Module " " " " " " " " "*/
union _ taq2116 VCR00; " " " " " " " " " " " " " " " " " " " /* VCR00 " " " " " " " " "*/
union _ taq2116 VCR01;
/* VCR01 " " " " " " " " "*/
/*………………………………*/
union _ taq2116 VCR23; " " " " " " " " " " " " " " " " " " " /* VCR23 " " " " " " " " "*/
unsigned char dummy662[160];
/* Reserved " " " " " " "*/
union _ taq2117 DR00;
/* DR00 " " " " " " " " " "*/
/*………………………………*/
union _ taq2117 DR22 " " " " " " " " " " " " " " " " " " " /* DR22 " " " " " " " " " "*/
/* …………………………… */
};
union _taq2116定義寄存器ADCD1VCR00 ~ADCD1VCR23,如下:
union _taq2116
{
unsigned long UINT32;
/* 32-bit Access " " " */
struct _taq839 BIT;
/* Bit Access " " " " " " */
};
根據RH850數據手冊中VCR寄存器的描述[6],如圖2,struct _taq839定義如下述程序:
struct _taq839
{ " " " " " " " nbsp; " " " "/* Bit Access " " " " " " */
unsigned long GCTRL:6;
/* GCTRL[5:0] " " " " " */
unsigned long :1;
/*Reserved Bits */
unsigned long ADIE:1;
/* ADIE */
unsigned long :5;
/* Reserved Bits " " " "*/
unsigned long CNVCLS:3;
/* CNVCLS[15:13] " " " "*/
unsigned long PDE:1;
/* PDE " " " " " " " " " " " " "*/
unsigned long PUE:1;
/* PUE " " " " " " " " " " " " */
unsigned long :14;
/* Reserved Bits " " " " "*/
}
RH850芯片其它寄存器,如DR等寄存器,參考上述VCR寄存器的程序進行設計。如圖2所示。
2.2 " 驅動程序設計
AD.h文件主要聲明ADCD1_Init( )函數,格式如下:
#ifndef _AD_H
#define _AD_H
#ifdef MIAN
#define EXTERN
#else
#define EXTERN extern
EXTERN void ADCD1_Init( void);
/*ADCD1初始化 " " " " */
EXTERN void ADCD0_Init( void);
/*ADCD0初始化 " " " " */
#endif
AD.c文件定義ADCD1初始化函數,參照RH850數據手冊和實際用途設置寄存器數值,設計思路參照圖3。RH850P芯片有兩組ADCD,本例換擋撥片接到ADCD1的9通道,即端口ADCD119。AD.c文件的部分設計程序如下文:
/*ADCD初始化AD.c定義*/
#include “AD.h”
#include “iodefine.h”
void ADCD1_Init(void)
{
/*以VCR寄存器舉例,省略其它寄存器配置。
讀者可參照配置VCR寄存器及圖3進行設計*/
//ADCDn ADHALTR, All scan group conversions and AD timers are halted forcibly
ADCD1.ADHALTR.UINT8 = 0x01;
/*STOP " " " " " " " " " " "*/
//ADCDn VCRj, virtual channel setting
ADCD1.VCR00. UINT32
= 0x00000000;
/*Normal A/D conversion,ADCD110 */
ADCD1.VCR01. UINT32
= 0x00000001;
/* Normal A/D conversion,ADCD111 " */
/*省略VCR02~ VCR08,讀者可參照配置*/
ADCD1.VCR09. UINT32
= 0x00000009;
/* Normal A/D conversion,ADCD119 " */
/* 其它寄存器配置…….. */
}
采集的數據存儲在ADCDnDRj寄存器中,聲明函數void ADCD_GetData(void),程序如下:
unsigned short V_Paddle_AD=0;
void ADCD_GetData( void)
{
V_Paddle_AD = ADCD1.DR08.BIT.DR09;
}
2.3 " 主函數main.c
main函數調用AD.c中的void ADCD1_Init (void)和void ADCD_GetData( void)函數,軟件編譯后可以下載調試,main.c函數的設計程序如下:
#include “iodefine.h”
#include “AD.h”
void main(void);
void Delay(unsigned int us);
void main(void)
{
ADCD1_Init();
while(1) " " "/*此處以while循環舉例 " " " "*/
{
Delay(1000);
ADCD_GetData();
}
}
3 " "編譯測試
采用CS+軟件工具進行編譯及刷寫,新建工程時選擇RH850 E1工具,配置主時鐘頻率16MHz。編譯成功后,在Watch窗口查看V_Paddle_AD輸出的數值。RH850的ADC為12bit,寄存器數據最大值4095時表示采集的電壓值為5V。故采集的換擋撥片電壓為:V_Paddle_AD/4095*5V,如V_Paddle_AD輸出的數值為2660,則計算得到的電壓值為3.25V。
根據硬件電路的設計電阻值和式(1)、式(2)、式(3)求得,加擋/減擋撥片均不按下且不存在故障時,系統的電壓值為3.26V,按下加撥片時電壓值為1.24V,按下減撥片時電壓值為2.5V。依據選型的元器件誤差及設計經驗,給予各參考電壓±0.2V的公差。由此汽車相關的上層應用軟件可以按照檢測得到的電壓值,判斷換擋撥片的狀態(加擋操作M+、減擋操作M-、無操作正常狀態M),進而完成相關的軟件應用設計或故障診斷。
4 " "換擋撥片故障分析
某車型換擋控制模塊(GSM)主芯片MCU采用瑞薩RH850設計,其AD采集模塊集成了換擋撥片檢測功能,以判斷駕駛員的加減擋請求,實現車輛的手動駕駛模式,控制車輛變速箱升降擋。車型開發過程中,偶發操作換擋減撥片車輛不能減擋的故障。
換擋撥片AD采集功能采用上文闡述的換擋撥片硬件設計、軟件驅動設計,可以得到采集的換擋撥片電壓值,經處理后的數值定義為In_PaddleVolt,其數值為0-500,表示0V-5V。以該數值作為輸入,可以設計換擋撥片故障診斷軟件、換擋撥片信號處理軟件,從而能夠快速的實現換擋撥片故障診斷和分析。
4.1 " 換擋撥片故障診斷軟件設計
換擋撥片故障診斷軟件,用于判斷換擋撥片的故障狀態,根據圖1換擋撥片系統等效電路和采集的電壓數值In_PaddleVolt,可以得到4種故障狀態:
1)換擋撥片開路或對電源短路。換擋撥片電壓大于4.8V,且持續3s,認為該故障發生。
2)換擋撥片對地短路。換擋撥片電壓小于等于0.2V,且持續3s,認為該故障發生。
3)換擋撥片黏連。換擋撥片電壓顯示長按減撥片(電壓2.5V±0.2V)或長按加撥片(電壓1.24V±0.2V),持續時間60s,認為發生黏連故障。
4)換擋撥片失效。換擋撥片電壓異常,且不是對地或對電源短路,持續3s以上,認為換擋撥片失效。
根據這4種故障狀態,設計換擋撥片故障診斷流程圖(如圖4),并利用Matlab/Simulink完成換擋撥片故障診斷的軟件設計,如圖5所示:
4.2 " 換擋撥片信號處理軟件設計
換擋撥片信號處理軟件的功能需求:根據換擋撥片故障診斷狀態Paddle_DiagErr和采集的換擋撥片電壓數值In_PaddleVolt,判斷出換擋撥片的信號狀態,并輸出:加擋請求M+,減擋請求M-、未操作換擋撥片M等狀態信息。這些信息將交互給變速箱控制單元等ECU,用于判斷車輛升降擋。軟件設計流程圖和Matlab/Simulink的設計軟件如圖6和圖7所示:
4.3 " 換擋撥片故障分析
利用Matlab/Simulink建立的換擋撥片故障診斷軟件和信號處理軟件生成C代碼,與AD采集驅動程序(AD.c、AD.h)、main.c等程序集成、編譯后,可以下載到換擋控制模塊(GSM),從而實現換擋撥片的電壓采集、信號處理和故障分析。
圖8是利用CAN通訊設備采集到故障車輛換擋撥片電壓數據,由下自上分別表示換擋撥片電壓數據、換擋撥片電壓濾波數據、換擋撥片信號請求,通過數據可以看到換擋撥片的實時電壓,從而清晰的判斷換擋撥片的實時狀態。如圖所示:在圖示無效信號區域,系統電壓不滿足減擋撥片電壓限值的范圍2.5V±0.2V,軟件認為操作無效,不發送減擋請求M-。而在圖示有效信號區域,系統電壓滿足減擋撥片電壓限值的范圍2.5V±0.2V和濾波時間要求,軟件認為操作有效,發送減擋請求M-。從而可鎖定換擋減撥片存在機械故障,后續由換擋撥片工程師進一步的進行換擋撥片結構解析。
5 " "總結
筆者基于瑞薩RH850芯片的AD采集模塊,設計了換擋撥片AD采集的硬件電路、驅動軟件(iodefine.h文件、驅動程序、主函數main.c),并結合實車換擋撥片故障問題進行了分析應用。該設計可應用于基于單片機AD采集模塊的開關類產品硬件及軟件設計,包括車用駕駛模式開關、擋位按鍵等功能器件的設計,能夠準確的、快速的完成AD數據采集,便于上層應用軟件功能開發和故障檢測功能的設計。
參考文獻:
[1]趙一帆,管雪元,劉雨順. 基于ARM的多路采集系統設計[J]. 電子測量技術,2021,44(15):142-148.
[2]朱海英,謝白玉. 嵌入式控制器在艦船電力監控系統中的應用[J]. 艦船科學技術,2021,43(10):124-126.
[3]徐信,陳聰. 基于STM32的無人機飛行器設計[J]. 信息通信,2018,12:128-130.
[4] 倪素環,楊雪. 基于STM32的AD采集與SD卡數據存儲[J]. 電腦知識與技術,2016,12(12):235-237.
[5]閆世杰,張曙光,彭曉云. 基于STC12C5A60S2單片機設計的水源地信息采集裝置[J]. 中國農機化學報,2014,35(4):293-285.
[6]RH850/P1x Group User’s Manual[Z]. www.renesas.com,2016.
譚火南
畢業于湖北汽車工業學院,本科學歷,現就職于廣汽集團汽車工程研究院底盤部,任主管工程師,主要研究方向:操縱系統電器集成設計及零部件開發。已發表論文2篇。
專家推薦語
中國質量認證中心武漢分中心
產品認證研究高級工程師 "技術專家
本文基于瑞薩RH850芯片的AD采集模塊,對汽車換擋撥片的實現對模擬信號的采集的硬件設計、軟件設計、編譯測試進行了研究,并結合實車換擋撥片故障進行了分析。這對技術人員準確的、快速的完成實現對換擋撥片模擬信號的采集,并能夠迅速鎖定汽車換擋撥片存在的故障有著指導性的意義,并具有較好的應用價值。