车用OBD性能参数多通道数据采集系统设计

  • 格式:pdf
  • 大小:766.47 KB
  • 文档页数:3

速信号。 1.1 A,D模块 MC9S08GT60内置8/10位可选A/D转换器,可同 时对8路模拟信号进行采集,通过设置精度、数据对齐 方式及单次/连续转换实现多种转换模式。该A/D转换 器具有较高的转换速度,但使用片内A/D转换器时,其 频率必须在1 MHz左右。由于A/D转换精度为10位, 因此A/D转换的最大值为1 023。 1.2 Capture模块 GT60内部包括2个独立的16位定时器,每个定 时器具有2路独立的输入捕捉通道,用来对输入信号 进行监测。当信号发生时,在指定的输入捕捉引脚上发 生一个指定的沿跳变(上升沿或下降沿)。定时器捕捉 到指定的沿跳变后,把此时自由运行计数器的值储存 到输入捕捉寄存器中。如果在输入捕捉控制寄存器中 设置中断,系统会产生输入捕捉中断,利用中断处理程 序可以得到信号发生变化的时刻。通过将捕捉到的2个 相邻上升沿或下降沿的时间相减,来得出输入信号的 周期或频率。 发动机转速信号频率计算公式为: f=TPMclk/(data Prescaler) 式中:TPMclk——系统总线时钟,Hz; data一捕捉到2个相邻上升沿或下降沿时定时 器的数值差; Prescaler一时钟分频值。 1.3 SCI模块 GT60有2个SCI模块,SCI接口采用全双工操 作,通过RS一232等串行通信协议与Pc通信,其内部 的移位寄存器逐位将8位或9位的数据字长发送到 传输线上。 1.4 GT60程序设计 软件开发采用CodeWarrior IDE软件。 首先,在CodeWarrior开发环境下新建工程,从PE 提供的Bean中选择AD1 Bean,Capture Bean,AS1 Bean,TI1 Bean,将其添加到_T程中,分别对Properties, Methods,Events进行设置,点击“Generate Code”自动生 成部分代码;然后,将需要的变量定义、功能函数、中断 处理程序及SCI串口发送程序等添加到代码中,进行 编译、调试和运行。具体程序设置如下: 1)ADC Bean Properties设置。Interrupt service/ event选择Enable,AID channels设置为2,A/D channels (pin)选择PTB0_AD1PO和PTBI_AD1P1,A/D resolu— tion选择10 bits,Convertion time设置为43.21 ms,Re— suit mode选择10一bit,right justified,unsigned。 2)Cap l Bean Properties设置。Capture device选择 TPM10,Capture input pin选择PTD0_TPM1CH0,Pull resistor选择pull up,Edge选择rising edge,Prescaler选 择32,Maximum time of event设置为539.390 ms。 3)TI 1 Bean Prope ̄ies设置。Periodic interrupt source选择TPM 10,Prescaler选择32,Interrupt period 设置为539.383 ms。 4)AS1 Bean Properties设置。Interrupt service/event 选择Enable,Input buffer size和Output buffer size均设 置为1 024,Parity选择none,Width选择8 bits,Stop bit 选择1,Baud rate选择9 600,RxD选择PTE1一RxD1, TxD选择PTE0_TxD1。 5)程序实现。在main程序窗口中定义变量: bool ValuesAvailable: word Values[8]; word datal,data2,data; float f= 进行连续转换,并将转换结果存人Values[8]中: AD1——Measure(TRUE); AD 1一GetValue l 6(Values); AD 1——Start(); 给变量赋初值,捕捉输入信号,并计算频率值: datal=0; data2=O; data=0; data2=data1; while(1){ if(datal>=data2)【 data=data l——data2; } else{ data=(word)(65 535一data2+data11: ) f=4 000 ooo/((noat)data 321: } 在Event程序窗口中定义变量: #define Vref 3.0 extern bool ValuesAvailable: extern word Values[8]; unsigned char Values0,Values1,……,Values7; extern word data,data 1,data2; byte ch[1 8]; 一21—