Archive for the ‘嵌入式’ Category

考虑到在应用中会用到定时器作为输入信号的脉宽捕捉,以及PWM输出,我们重点关注了一下S12G系列MCU的定时器。其datasheet中第二十章为定时器的相关描述,但是其中只看到一个定时器,该定时器是一个16bit free-running counter。可被8通道的输入捕捉或输出比较使用。另外在datasheet的第十章中所提到的实时中断也可作为一个定时器来使用,一般咱们可以拿来作为系统的计时器用。虽然PWM模块中也有定时器但是不可作为独立的定时器使用,而且S12G系列MCU中的PWM模块不再有任何中断。

Sunday, January 8th, 2012 at 17:49 | 0 comments
Categories: 嵌入式

DTC是Diagnostic Trouble Code的缩写,中文意思是诊断故障码,它是汽车电子的专业术语。

DTC的设定一般是采用SAEJ2012标准,SAEJ2012中制定了标准的DTC。

DTC一般有四种,其表示方式一般采用五位(字符+数字)的方式,前面两位用来区分故障来自的控制系统,为系统代码。

Saturday, January 7th, 2012 at 21:58 | 0 comments
Categories: 嵌入式

Hex文件是可以烧录到MCU中,被MCU执行的一种文件格式。如果用记事本打开可发现,整个文件以行为单位,每行以冒号开头,内容全部为16进制码(以ASCII码形式显示)。Hex文件可以按照如下的方式进行拆分来分析其中的内容:

例如 “:1000080080318B1E0828092820280B1D0C280D2854”可以被看作“0×10 0×00 0×08 0×00 0×80 0×31 0x8B 0x1E 0×08 0×28 0×09 0×28 0×20 0×28 0x0B 0x1D 0x0C 0×28 0x0D 0×28 0×54”

Friday, January 6th, 2012 at 14:28 | 0 comments
Categories: 嵌入式

如今在汽车电子软件开发中常常涉及到在线升级,这样的应用中必将会使用Bootloader,一般Bootloader会独立于应用程序,如此则会生成独立的二进制文件。而应用程序也是一个独立的模块,同样也会生成独立的二进制文件。对于Freescale系列MCU则其对应的二进制文件为S19文件。

由于一个嵌入式产品中同时需要烧录两份独立的S19文件该如何实施呢,比较容易实现的便是先将Bootloader烧录至MCU中,然后用在线升级工具,在汽车电子应用中通常为诊断仪。显然,对批量生产来说这是不易被接受的。这就要求将Bootloader和应用程序同时烧录至MCU中,接下来我将介绍如何将两个独立的S19文件合并至一个S19文件中,并通过一次烧录将两个模块都烧录至MCU中。

Monday, January 2nd, 2012 at 21:28 | 0 comments
Categories: 嵌入式

今天同事小王问我为何在对多通道ADC采样过程中前一通道的数据变化会对后一通道产生影响,这让我也变得很茫然。我在前面两个项目的应用并未出现这种情况,我所用的MCU为Freescale MC9S08DZ60,而他目前所用的是Freescale MC9S08AW16,但是大家都是9S08系列的,这样的外围接口一般都是相同,而且寄存器的定义也是差不多。 为了找出原因我们通过多次试验,查找是否有中断标志未被清除,并且延长相邻两通道的扫描间隔,依然不能奏效。至此只好将我那个项目中的代码找来和他的代码做比较,通过比较发现在ADC的输入频率方面设置不同,在出现问题的程序中采用的是总线频率作为时钟源(20MHz),分频系数为2,这样ADC的实际时钟达到10MHz。而我的那个代码中选择的是外部晶体时钟8MHz作为时钟源,分频系数为8,也就是ADC的实际时钟为1MHz。两者时钟相差10倍。将问题程序中的ADC实际时钟设置为1MHz后,原问题解决。 至此可以认为Freescale 9S08系列ADC采用高输入时钟时会对采样结果产生影响从而造成采样失真,所以在以后的应用中应避免使用较高的输入时钟。 Incoming search terms:9s08 ʱfreescale mc9s08 adc

Thursday, December 1st, 2011 at 17:22 | 1 comment
Categories: 嵌入式

Mentor Graphics VNA 是个很强大的CAN总线设计工具。其通过基于信号的时基算法和基于报文的时基算法可以很好的分析网络负载与报文延时。利用自动消息打包和自动ID分配对于整车网络设计确实非常先进,并能对网络进行最好的优化。就网络的整体架构和自动优化方面貌似比Vector的工具要来的强大,但是在网络模拟和仿真方面就不像Vector的CANoe那么方便了。如果能将两家的优点集中到一起那必将是一个非常棒的工具。 通过一天的培训使我了解了整车网络设计的流程,以及通过科学方法和先进工具所带来的巨大好处——规避网络隐患、减轻测试工作量,从而能够极大地提高整车的可靠性。 Incoming search terms:Volcanovolcano vector CAN

Saturday, July 16th, 2011 at 20:55 | 0 comments
Categories: 嵌入式
Tags:

今天在考虑产品批量进行程序烧录时,受阻于板子上使用的UJA1065.因为UJA1065上电工作后会启动硬件看门狗,而我的Freescale mc9s08dz60是用UJA1065的来供电的,这样一来会导致单片机无法正常供电。此时有一种方法就是在UJA1065加电之前先给其TEST引脚上加+12V的电压,从而禁止看门狗,让UJA1065能够持续地给MCU供电,且不产生复位。但是在批量生产时,这种操作方式肯定是极为不便的。因此想到跳过UJA1065直接通过BDM接口给单片机供电(也可认为是用USB供电吧),我使用的调试下载工具是P&E Multilink,虽然其引脚上定义有VCC,但是通过测量分析可以知道该引脚是用来测量目标板上的VCC的,而非给目标板供电的VCC。 若想使用该引脚来供电,势必还得从USB上取电,至此我决定拆开P&E Multilink。打开外壳后直接找到5V电源,再用导线将输出接口的第6脚和电源连到一起。弄完后插上USB电缆,在未接目标板时我们发现P&E Multilink的黄色指示灯已经点亮。呵呵,不用担心。将目标板接上后进行程序烧录,提示MCU复位脚为低,一看原理图原来是复位脚和UJA1065的RESET脚连在一起导致复位脚一直处于低电平,断开后重新进行程序下载,非常顺利。至此已完全实现了用P&E Multilink给目标板供电的功能。 Incoming search terms:freescale P&E BDM Multilinkp&e multip&E multilinkP&E Multilink BDM rs08P&E USB MON08 MULTILINKUSB BDM Multilink

Wednesday, December 22nd, 2010 at 23:21 | 0 comments
Categories: 嵌入式

众所周知整车网络开发一般都采用V型开发流程,该流程的开发过程大致包括:功能需求建立(网络需求的定义),网络框架的定义(网络规范的定义),节点零部件ECU的定义,软硬件的集成仿真,模块测试、验证,以及整车网络的测试、验证。 针对ECU的网络开发主要分为硬件开发,软件开发和网络测试三大部分。 硬件系统开发主要包括: ECU硬件开发,主要确定通信速率,终端电阻,晶体容差,滤波电容等物理层相关参数; 网络测试辅助…

Tuesday, December 21st, 2010 at 08:44 | 0 comments
Categories: 嵌入式
Tags:

1.概述

为了在不同的计算机平台之间传输程序代码和数据,摩托罗拉将程序和数据文件以一种可打印的格式(ASCII格式)编码成s格式文件。s格式文件是 Freescale推荐使用的标准文件传送格式。编译完成之后,Freescale CodeWarrior编译器将在bin文件夹下自动生成“*.a…

Friday, November 5th, 2010 at 16:32 | 0 comments
Categories: 嵌入式
Tags:

引言
采样控制理论中有一个重要结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。PWM控制技术就是以该结论为理论基础,对半导体开关器件的导通和关断进行控制,使输出端得到一系列幅值相等而宽度不相等的脉冲,用这些脉冲来代替正弦波或其他所…

Monday, April 19th, 2010 at 23:33 | 0 comments
Categories: 嵌入式
Tags:
Page 1 of 212
TOP