📄 befores.html
字号:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>在开始之前</title></head><body><p align="center"><b><font size="4" color="#FF0000">开始之前</font></b></p><blockquote> <p><br> 在开始主题之前,先谈谈MN在硬件和固件设计方面的几个问题。<br> <br> 最初考虑使用Cypress公司的CY7C63xxx芯片完成MN。出于各方面条件限制,最终使用了后面介绍的Mcs51和PDIUSBD12实现。<br> <br> CY7C63xxx(xxx为000/001/100/101之一,这四款型号有细微差别)是一片哈佛结构的8位RISC芯片,它具备集成的USB接口单元和包含了为USB专门优化的指令在内的共三十多条指令。它有16个GPIO(通用IO脚),每个GPIO管脚有16级电平输出,并且可以被编程为中断源引脚。支持工业标准刻录机。在当时看来,它的每一种特性似乎都是为MN量身定做的。<br> <br> 使用这个芯片实现MN比目前的这种方案有如下几个明显的优点:</p> <blockquote> <p>因为是单芯片实现,所以布线简单且整个系统稳定性高;<br> 便宜,该片在深圳的零售价格不到人民币伍圆;<br> 该片有更多实际可用的GPIO,并且这些GPIO还具有令人心动的额外特性</p> </blockquote> <p>最终没有采用这个方案,来自以下几个强大的阻力:</p> <blockquote> <p>没有能力购买这个芯片的仿真器,仿真器不是必要的,但是它就像软件开发中使用到的debug工具,正常的程序员不可能离开他们喜爱的调试工具;<br> 没有能力购买这个芯片的C语言编译器,用汇编编写简单的固件是可能的,前提是在熟悉的平台下,尽管它是RISC风格的机器,但是我也不可能在短时间内掌握其汇编程序;<br> 没有能力购买用于通用编程器的转接口,尽管学校的编程器支持这个芯片,但是由于封装形式的不同仍然需要转接,而专用的编程器更加昂贵</p> </blockquote> <p>被迫更换方案至今想来仍是痛苦的,不仅因为CY7C63xxx的大量有用的特性,更因为当时对这个芯片已经做了很长时间的学习,更换方案从新学习可能会严重破坏项目的进度。不过使用Mcs51和PDIUSBD12这种复合方式并不是一无是处,由于c51在国内使用十分广泛,所以有大量参考和经过验证的外设扩展;并且正如PDIUSBD12芯片手册上说的,这种方案具备一定柔性,用户可以自行选择合适的单片机。此外学校能够提供c51的仿真器和编程器。<br> <br> 对制板、电子学知识的缺乏,特别是相关领域内工程经验的匮乏,使得完全由我设计的最初的MN没有联测成功。目前已知可能的问题有:</p> <blockquote> <p>布局及布线,PDIUSBD12与驱动它的晶振相距过远,很多走线不符合工程规定,极易造成干扰或信号不同步。但尚不清楚是否会造成致命伤害;<br> 固件,最初的固件可能不符合PDIUSBD12的时序,这个问题现在已经解决,但未经验证;<br> 器件,c51的端口0通常需要上拉电阻,最初的MN没有加,这个问题很好解决,但未经验证;<br> 连线,最初的MN使用了仅仅出现在芯片手册上的一种连接方式,至今没有看到过成功实例</p> </blockquote> <p>下面行文时指的MN,除非特别说明通常是另一款。她能够完成最初的MN所能够完成的一切,并且具有很多扩展能力。</p> <div align="center"> <center> <table border="0" width="640" height="480"> <tr> <td width="100%" align="center"> <p align="center"><img border="0" src="../../Set%20of%20Docutments/beforeS_oldMN.jpg" width="640" height="480"><br> 老的MN</td> </tr> <tr> <td width="100%" align="center"> <p align="center"><img border="0" src="../../Set%20of%20Docutments/beforeS_newMN.jpg" width="640" height="480"><br> 新的MN(主功能局部)</td> </tr> </table> </center> </div> <p><br> 关于这个问题的技术讨论,后面会说到。<br> <br> MN固件的整体框架参考自Philips为PDIUSBD12准备的文档,根据上面两个版本的MN,我分别进行了移植。根据MN的具体情况,我对这个框架的各个部分都进行了增减,和注释。<br> <br> </p></blockquote></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -