⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 beforestart.txt

📁 USB驱动使用比较详细的一个例子
💻 TXT
字号:
开始之前

在开始主题之前,先谈谈MN硬件和固件设计方面的问题。

最初考虑使用Cypress公司的CY7C63xxx芯片完成MN。然而处于各方面条件限制,最终使用了后面介绍的Mcs51和PDIUSBD12实现。

CY7C63xxx(xxx为000/001/100/101之一,这四款型号有细微差别)是一片哈佛结构的8位RISC芯片,它具备集成的USB接口单元和包含了为USB专门优化的指令在内共三十多条指令。它有16个GPIO(通用IO脚),每个GPIO管脚有16级电平输出,并且可以被编程为中断源引脚。支持工业标准刻录机。在当时看来,它的每一种特性似乎都是为MN量身定做的。

使用这个芯片实现MN比目前这种方案有如下几个明显的优点:
	因为是单芯片实现,所以布线简单且整个系统稳定性高;
	便宜,该片在深圳的零售价格不到人民币伍圆;
	该片有更多实际可用的GPIO,并且这些GPIO还具有令人心动的额外特性

最终没有采用这个方案,来自以下几个强大的阻力:
	没有能力购买这个芯片的仿真器,仿真器不是必要的,但是它就像软件开发中使用到的debug工具,正常的程序员不可能离开他们喜爱的调试工具;
	没有能力购买这个芯片的C语言编译器,用汇编编写简单的固件是可能的,但是前提在熟悉的平台下,尽管它是RISC风格的机器,但是我也不可能在短时间内掌握其汇编程序;
	没有能力购买用于通用编程器的转接口,尽管学校的编程器支持这个芯片,但是由于封装形式的不同仍然需要转接,而专用的编程器更加昂贵

被迫更换方案至今想来仍是痛苦的,不仅因为CY7C63xxx的大量有用的特性,更因为当时对这个芯片已经做了很长时间的学习,更换方案从新学习可能会严重破坏项目的进度。不过使用Mcs51和PDIUSBD12这种复合方式并不是一无是处,由于c51在国内使用十分广泛,所以有大量参考和经过验证的外设扩展;并且正如PDIUSBD12芯片手册上说的,这种方案预备一定的柔性,用户可以自行选择合适的单片机。此外学校能够提供c51的仿真器和编程器。

对制板一无所知和对电子学知识的缺乏,特别是相关领域内工程经验的匮乏,使得完全由我设计的最初的MN没有联测成功。目前已知可能的问题有:
	布局及布线,PDIUSBD12与驱动它的晶振相距过远,很多走线不符合工程规定,极易造成干扰或信号不同步。但尚不清楚是否会造成致命伤害;
	固件,最初的固件可能不符合PDIUSBD12的时序,这个问题现在已经解决,但未经验证;
	器件,c51的端口0通常需要上拉电阻,最初的MN没有加,这个问题很好解决,但未经验证;
	连线,最初的MN使用了仅仅出现在芯片手册上的一种连接方式,没有看到过成功实例
下面行文时指的MN,除非特别说明通常是另一款。她能够完成最初的MN所能够完成的一切,并且具有很多扩展能力。
关于这个问题的技术讨论,后面会说到。

MN固件的整体框架参考自Philips为PDIUSBD12准备的文档,根据上面所述的两个版本的MN,我分别进行了移植。根据MN的具体情况,我对这个框架的各个部分都进行了增减,和注释。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -