新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > C语言和汇编语言在开发单片机时有哪些不同

C语言和汇编语言在开发单片机时有哪些不同

作者:时间:2013-01-18来源:网络收藏

  16. 能否利用单片来检测手机电池的充放电时间及充放电时的电压电流变化,并利用一个I/O端口使检测结果在电脑上显示出来?

  答:目前市场上的各类智能充电器,大部分都采用MCU进行充电电流和电压的控制。至于要在电脑上显示,好象并不实用,可能只有在一些专门的电池检测仪器中才会用到;对于一般的手机用户来说,谁会在充电时还需要用一台电脑来做显示呢?要实现单片机与电脑的连接,最简单的方式就是采用串口通讯,但需要加一颗RS-232芯片。

  17. 在ARM编程中又应当如何?

  答:就以嵌入式系统观念为例,一般嵌入式处理器可以分为三类:嵌入式微处理器、嵌入式微控制器、嵌入式DSP(Digital Signal Processor)。

  嵌入式微处理器就是和通用计算机的微处理器对应的CPU。在应用中,一般是将微处理器装配在专门设计的电路板上,在母板上只保留和嵌入式相关的功能即可,这样可以满足嵌入式系统体积小和功耗低的要求。目前的嵌入式处理器主要包括:PowerPC、Motorola 68000、ARM系列等等。

  嵌入式微控制器又称为单片机,它将CPU、存储器(少量的RAM、ROM或两者都有)和其它接口I/O封装在同一片集成电路里。常见的有HOLTEK MCU系列、Microchip MCU系列及8051等。

  嵌入式DSP专门用来处理对离散时间信号进行极快的处理计算,提高编译效率和执行速度。在数字滤波、FFT(Fast Fourier Transform)、频谱分析、图像处理的分析等领域,DSP正在大量进入嵌入式市场。

  18. MCU在射频控制时,MCU的时钟(晶振)、数据线会辐射基频或基频的倍频,被低噪放LNA放大后进入混频,出现带内的Spur,无法滤除。除了用layout、选择低辐射MCU的方法可以减少一些以外,还有什么别的方法?

  答:在设计高频电路用电路板有许多注意事项,尤其是GHz等级的高频电路,更需要注意各电子组件pad与印刷pattern的长度对电路特性所造成的影响。最近几年高频电路与数位电路共享相同电路板,构成所谓的混载电路系统似乎有增加的趋势,类似如此的设计经常会造成数位电路动作时,高频电路却发生动作不稳定等现象,其中原因之一是数位电路产生的噪讯,影响高频电路正常动作所致。为了避免上述问题除了设法分割两电路block之外,设计电路板之前充分检讨设计构想,才是根本应有的手法,基本上设计高频电路用电路板必需掌握下列三大原则:

  ? 高质感。

  ? 不可取巧。

  ? 不可仓促抢时间。

  以下是设计高频电路板的一些建议:

  (1)印刷pattern的长度会影响电路特性。尤其是传输速度为GHz高速数位电路的传输线路,通常会使用strip line,同时藉由调整配线长度补正传输延迟时间,其实这也意味着电子组件的设置位置对电路特性具有绝对性的影响。

  (2)Ground作大better。铜箔面整体设置ground层,而连接via的better ground则是高频电路板与高速数位电路板共同的特征,此外高频电路板最忌讳使用幅宽细窄的印刷pattern描绘ground。

  (2)电子组件的ground端子,以最短的长度与电路板的ground连接。具体方法是在电子组件的ground端子pad附近设置via,使电子组件能以最短的长度与电路板的ground连接。

  (3)信号线作短配线设计。不可任意加大配线长度,尽量缩短配线长度。

  (4)减少电路之间的结合。尤其是filter与amplifier输出入之间作电路分割非常重要,它相当于audio电路的cross talk对策。

  (5)MCU回路Layout考量:震荡电路仅可能接近IC震荡脚位;震荡电路与VDD VSS保持足够的距离;震荡频率大于1MHz时不需加 osc1 osc2 电容;电源与地间要最短位置并尽量拉等宽与等距的线,于节点位置加上104/103/102等陶瓷电容。

  19. Intel系列的96单片机80c196KB开发系统时,都有那些注意事项?

  答:一个即时系统的软体由即时操作系统加上应用程序构成。应用程序与作业系统的接口通过系统调用来实现。用80C196KB作业系统的MCU,只能用内部RAM作为TCB和所有系统记忆体(含各种控制表)以及各个任务的工作和资料单元。因此一定要注意以下几点:

  (1)对各个任务分配各自的堆迭区,该堆迭区既作为任务的工作单元,也作为任务控制块的保护单元。

  (2)系统的任务控制块只存放各任务的堆迭指标,而任务的状态均存放于任务椎栈中。在一个任务退出运行时,通过中断把它的状态进栈,然后把它的堆迭指标保存于系统的TCB中;再根据优先取出优先顺序最高的已就绪任务的堆迭指标SP映象值送入SP中;最后执行中断返回指令转去执行新任务。

  (3)各任务的资料和工作单元尽量用堆迭实现,这样可以允许各任务使用同一个子程序。使用堆迭实现参数传递并作为工作单元,而不使用绝对地址的RAM,可实现可重入子程序。该子程序既可为各个任务所调用,也可实现递回调用。

  20. 在demo板上采样电压时,不稳定,采样结果有波动,如何消除?

  答:一般来说,仿真器都是工作在一个稳压的环境(通常为5V)。如果用仿真器的A/D时,要注意其A/D参考电压是由仿真器内部给出,还是需要外部提供。A/D转换需要一个连续的时钟周期,所以在仿真时不能用单步调试的方法,否则会造成A/D采样值不准。至于A/D采样不稳定,可以在A/D输入口加一电容,起到滤波作用;在软件处理时采用中值滤波的方法。

  21. 在车载DVD系统中,如何设计电子防震系统?

  答:在车载DVD系统,最好选择高档DVD机,因为高档DVD机都采用电子防震系统(ADVANCEDESP),当记忆缓冲区内的读数降低,先进的电子防震设计会以双速读数系统,做出比正常速度快两倍的读数速率,以减低噪声,即使连续震荡仍可避免跳线情况出现,现在就说说什幺叫电子防震。简单地说:电子防震就是一个信号的储存--释放过程,首先CD要先把信号进行提前读取,也就是我们见到机子的加速,再把信号储存在RAM中,而我们在开防震的时候所听到的就是经过RAM的声音,这样就是它的过程。当没有防震时是由于信号是1比1读取的,所以当受到冲击后,就会出现跳音。而当开了防震时,机子受到冲击后,由RAM释放出来的声音使音乐不停地播放,而与此同时,光头迅速进行复位检索,当检索到信号后立即补充,所以不会出现跳音。大概的情况就是这样。但是这样还没有满足用家的要求,由于这种的方法带来的时间短,通常只有3秒,所以跳音的机会还是蛮高,如果增大RAM又带来造价的增高因为RAM这东西价格较贵,尤其是质量好的。

  22. 在电子防震技术中,有那些IC或器件可供选择?

  答:在电子防震技术中,最重要的技术之一要数是RAM技术,而一直以来都是因为它的成本问题,所以防震时间都一直不能增加,也就是说RAM本身就有限制,RAM的容量越大,造价就越高。而许多厂家就如何在RAM的限制里得到最大限度的记忆时间展开了开发研究。

  23. 如何进行编程可以减少程序的bug?

  答:在此提供一些建议,因系统中实际运行的参数都是有范围的。系统运行中要考虑的超范围管理参数有:

  ? 物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或非正常回应进行出错处理。

  ? 资源参数。这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、存储单元长度、堆迭深度。在程序设计中,对资源参数不允许超范围使用。

  ? 应用参数。这些应用参数常表现为一些单片机、功能单元的应用条件。如E2PROM的擦写次数与资料存储时间等应用参数界限。

  ? 过程参数。指系统运行中的有序变化的参数。

  在上述参数群对一程序编写者而言,须养成良好习惯,在程序的开头,有顺序的用自己喜欢文字参数对应列表来替代,然后用自己定义的文字参数来编写程序,这样在做程序的修改及维护时只在程序的开头做变动即可,不用修改到程序段,才比较容易且不会出错。

  24. 有人认为单片机将被ARM等系列结构的嵌入式系统所取代。单片机的生命期还有多长?

  答:因为8位单片机与嵌入式系统的ARM在功能结构和单价的差异,故应用层次上就有很大的不同。 ARM适用于系统复杂度较大的高级产品,如PDA、手机等应用。 而8位单片机因架构简单,硬件资源相对较少,适用于一般的工业控制,消费性家电……等等。评估单片机近期是否会给ARM取代,要观察两个因素:

  ? 芯片成本

  因ARM的工作频率较高,电路较庞大,所需的芯片制造工艺要求在0。25U以上,成本较高。8位单片机工作频率相对较低,电路较小,所需的芯片制造工艺在0。5U 即可,成本较低。

  ? 功能定位

  ARM的功能较单片机强,但两者定位不同。就如现阶段不会有人用ARM去作一个简单的工业定时开关。当然,如果两者单价相同也无不可,但现实是有很大的单价差距。

  至于将来,因芯片制造成本会不断下降,上述的成本差异影响愈来愈少!但我估计在往后5年单片机仍有价格优势,仍能存活!但ARM是否会精简架构,降低成本,抢夺低阶市场?我想可能性不大,ARM应该会向上发展。同样,单片机也只能向上发展,如16位,高功能……等。 原因就是因为芯片制造工艺进步太快。压迫芯片设计往高集成发展。

  25. 在单片机C编成时,如何才能使生成的代码具有和汇编一样的效率?

  答:如果是使用编程时,不太可能生成的代码具有1:1和汇编一样的效率。

  命令要被硬件识别并执行,必须通过编译器编译。编译器分为前端、中端、后端。前端与各种计算机语言写的程序打交道,后端与处理器的基本指令集接轨。所以如果使用C编程时,要达到最高的效率,最好能够很了解所使用的C编译器。先试验一下每条编译以后对应的的语句行数,这样就可以很明确的知道效率。在今后编程的时候,使用编译效率最高的语句,这样就能确保单片机C编程的时候同样的功能不同的C程序,编译效率最高。但是各家的C编译器都会有一定的差异,优秀的嵌入式系统C编译器代码长度和执行时间仅比以编写的同样功能程度长5-20%,所以不同厂家的C编译器的编译效率也会有所不同。

  26. ARM单片机和哪种内核的单片机比较接近?

  答:严格的说,ARM不是单片机,是一个嵌入式的实时操作系统。ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。所以市场上像Intel、IBM、LG半导体、NEC、SONY、菲利浦和国半这样的大公司都有ARM系列,现在不存在什幺ARM单片机和哪种内核的单片机比较接近的问题。而且由于厂家购买内核后会根据自己芯片应用方向的不同,自行添加不同的外挂功能模块,所以,同样内核的芯片其提供的功能是不同的。

万能遥控器相关文章:万能遥控器代码


手机电池相关文章:手机电池修复


pwm相关文章:pwm是什么


51单片机相关文章:51单片机教程


c语言相关文章:c语言教程


单片机相关文章:单片机教程


c++相关文章:c++教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


分频器相关文章:分频器原理


评论


相关推荐

技术专区

关闭