博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

CalmArrow

【打好基础】全力以赴,顺其自然【每天进步一点点】
  piaoxiang.cublog.cn

关于作者
姓名:CalmArrow(lqm)
职业:硕士在读
位置:山东济南
研究:嵌入式系统设计
联系:calmarrow@gmail.com

信仰:
    1、永远保持积极向上(积极的心态,积极的思考,积极的行动),享受生活给予的一切!
    2、做正确的事,正确的做事;用心去做,做到最好!
    3、如果你觉得不幸福,那么请你把幸福的门槛降低一些,不要把幸福拒之门外。。。

目标:
    软硬结合,打好基础,提高学习能力,完善知识体系,建立核心优势。

方法:
    理论与实践相结合
    深度与广度相结合
    理解与记忆相结合

说明:
    本Blog仅供学习之用,转载文章如涉及版权,请通知。原创作品如转载,请注明出处。
|| << >> ||
我的分类


最近两周的工作总结

文章说明:calmarrow(lqm)原创

文章引自:http://piaoxiang.cublog.cn

 
    最近两周一直在做一个项目,就是用C8051F020最为MCU,实现对广告灯箱的控制。在济南的花园路上就有这样的灯箱,不过没有语音功能。这个项目还要求有语音功能,语音文件都存储在CF卡中。这个项目已经完成得差不多了,回头总结一下,该项目的软件工作量有下面几个方面:
 
    1、C8051F020的学习和掌握
 
    从大三学过一点简单的8051,就再没有看过。C8051F020是一款增强型51芯片,功能比较强大。因为有去年学习AT91RM9200的经验,相对于AT91RM9200,它的难度还算低一点。重点是理解中断系统,内存管理部分,其他大都比较容易了。
 
    2、Keil C的学习和掌握
 
    这个工作量不大。只需要学习Keil C那些地方与标准C是不同的;为什么有这些不同;因为这些不同,我在使用的时候必须注意些什么......同样,因为在Linux下使用GCC、GDB等等,对各个分离的过程有了很清晰的认识,所以,这个就显得简单多了。我想,如果一直使用Keil,那么很难对各个过程有个清晰的认识,即使出现问题,也不知道是那个环节出现了问题,应该如何去解决。
 
    3、SMBus/I2C、SPI总线的驱动
 
    SMBus/I2C仍然用作读写e2prom,存储配置信息。在这里,重点掌握了有限状态机的原理。C8051F020的硬件实现SMBus有28个状态,现在用它来做master,就不需要那么多了。根据需求进行相应的简化。
 
    SPI总线应该是最简单的总线协议了。利用它来读写实时时钟芯片RTC4553,实现在数码管上实时显示时间,同时实现定时功能。在开发的时候,这个却一度徘徊不前。原因还是对工作原理和Datasheet了解不够,NSS引脚用法错误导致。
 
    4、CF卡的读取和FAT16文件系统的实现
 
    CF卡的读取首先基于对C8051F020的内存管理机制有了清晰的认识,具体的读写倒不是很困难。对FAT16文件系统的实现,也没有完全实现,只是能满足需求即可。CF卡用来存储配置信息和语音文件,该语音文件支持raw格式的PCM 12bits unsigned char编码格式,直接将数据送至DAC0即可。
 
    5、串口驱动和红外远程控制部分
 
    这部分的工作量主要在解析报文。
 
    6、系统流程控制
 
    工作量在逻辑处理。
 
    这个项目使自己更加清晰的认识到,软硬件是如何协同工作;驱动为什么是提供机制,而不提供策略;如何实现模块化编程;如何实现模块间通信。这些反过来对于ARM的学习有了一个很好的促进作用,眼光比以前开阔多了。只看书,或者只是根据别人的思路走,是难以学好ARM的。一个人能够很好地学习别人的长处为己所用,这个人就是聪明的。上面都是些感悟点滴。
 
    这个项目的最大价值在于让我经验提升,特别是调试经验和思考问题的角度。可以说,刚开始的时候,走一步就一处问题。遇到过长线效应、速率不匹配、量化噪声等问题,这些都是通过示波器查看波形解决的。所以,在以后的问题处理中,思维就开阔了,调试手段也丰富了。这些是在课本上无法学到的。只是死做,不去思考,也是不能得到的。
 
    感觉51还是相对简单的,毕竟是8位单片机,用途也就一些低端领域。32位的MCU每个功能块都复杂的多,大多用于高端领域。最为重要的是,高端的MCU因为要完成的工作量比较大,所以大多数带操作系统,那么就需要对操作系统有深入的了解。写这个的原因是纠正我以前的一个错误的观点,正确的应该是:万物都有相通之处。就是说,掌握51,会对ARM的学习有很好的促进;反过来,ARM的学习,也会对51的掌握有莫大的帮助。做项目,不应该仅仅局限于这个项目,要把眼光放远,思维活跃一些,在知识体系的任何可能与之相关的方面,可能都要受益于你当前的所得。

发表于: 2007-06-11,修改于: 2007-12-02 09:34,已浏览2616次,有评论3条 推荐 投诉


网友评论
网友: rw99yy 时间:2007-06-11 16:19:13 IP地址:222.212.91.★
等了你好久的文章了,非常不错。
你的学习方法和思维都非常不错 值得我等学习

Blog作者的回复:
谢谢,共同努力


网友: zhangyidong 时间:2007-06-11 17:07:13 IP地址:60.216.124.★
很想认识你,我也在济南读书。正在读大二。我是学电子信息的。学LINUX 有一段时间了。现在正在搞凌阳的61单片机,希望得到你的指点。

Blog作者的回复:
如果看凌阳,很多都是现成的。倒是可以把凌阳的语音部分作为切入点。它的语音部分还是很出色的,研究些算法,结合使用,是个不错的选择。如果单纯的应用,则不是太好。因为现成的东西太多,自己动手动脑的部分就相对少了。学习阶段还是多动手多动脑


网友: 本站网友 时间:2007-06-22 11:45:08 IP地址:123.253.107.★
请问,您硕士在读, 读的是什么专业哪个方向的?

Blog作者的回复:
信号与信息处理专业  嵌入式系统应用方向


 发表评论