几个月前,参加了公司的一个项目,要求在某个系统的某个子模块中把系统数据保存到U盘中,从此开始了我与USB HOST不得不说的故事。
在参加这个项目之前,虽然我有一些嵌入式系统开发的经验,但是那都是10年前的事情了,那个时候用的CPU是8031,语言是PL/M-51,现在用的是大名鼎鼎的AT91AM9200,语言也换成了C,还真是鸟枪换炮了。可惜,这两样东西我一样也不熟。不但这两样东西不熟,我对USB整个都一无所知,什么接口、协议,完全不知道,哦,就算是现在有人问我这些,我还是不全知道(不过知道需要知道的东西就好了)。
算了,还是介绍一下开发的背景先吧。
系统使用的CPU为AT91AM9200,USB接口芯片,哦,没有,因为AM9200自己就带有2个USB接口,因为我们负责硬件设计的同事没有使用USB接口芯片来操作U盘,而是直接使用AM9200的USB接口,据说这样可以减少器件使用量,从而节约成本,提高系统稳定性。
我承认这样的说法没有错,可是后来的工作实践证明这样做需要花费更多的时间,主要是用在熟悉USB的各方面内容上。虽然当时我是整天怨言不断(要是用USB芯片,那该多简单呀),可是塞翁失马,焉知非福,不是这样的硬件设计,我今天也不会对USB这样熟悉,这也算得上是有付出才有回报吧。
接下来是操作系统,主流的嵌入式操作系统很多,有VxWorks、Windows CE、Linux、uCOSII等等,我们的系统用的是什么呢?哦,没错,我们没有使用任何的嵌入式操作系统。
说实话,搞嵌入式开发这么多年,还从来没有用过什么操作系统,也没有体会到使用操作系统有什么好处,反正在我的观念里,还是什么东西都自己控制比较保险一点,至少发生了问题能查出来怎么去解决,要是使用操作系统,那就不知道是谁的问题了。
好了,总结一下,简单的说,这个项目的要求就是在AT91AM9200下开发USB Host接口,把系统其它模块采集的数据通过该接口保存到U盘中。
在这一系列文章中,我将会把自己在开发AM9200 USB Host过程中的心得阐述出来,有意与我交流的可以写邮件到tywali.csdn@gmail.com。