欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    2647.自制廉价的Arm9 开发平台.doc

    • 资源ID:3883837       资源大小:553.50KB        全文页数:11页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2647.自制廉价的Arm9 开发平台.doc

    自制廉价的Arm9 开发平台 摘要:基于Arm9内核的单片机,由于其低廉的价格与优越的性能,已经被广泛的应用于各种消费类电子产品中。掌握Arm9单片机的开发技能已经成为嵌入式系统开发者的迫切要求。但由于市面上的Arm9开发板价格不菲,使不少想学习Arm9开发技术的朋友望而却步,其中有一大部分是各大高校的学生。本文阐述了改造ipTIME的IP0422路由器,使其成为VxWorks和Linux的Arm9开发平台的过程。整个过程简单易行,同时花费在150元以内,是嵌入式系统开发爱好者不错的选择。1 改造系统的选取    要动手改造Arm9开发系统,首先要选取一款进行改造的产品。现在基于Arm9内核的单片机被广泛的应用于家用路由器和手机当中,因而这两类产品可以作为我们寻找改造对象的范围。但由于手机总体的价格偏高,同时集成度比较高,电路系统复杂,因而不适合作为我们改造的对象。而路由器恰恰相反,现在100多元的路由器比比皆是,而且这些路由器基本使用单芯片,该芯片除了具有Arm9核心的控制功能外,还具有硬件上的路由算法支持,因而电路相对简单,便于改造,所以廉价的路由器就是改造Arm9开发板的合适对象。经过反复比较以后,最终选择了ipTIME的IP0422。该款路由器的市场价格在100元左右,主芯片为KS8695X,是高度集成化的网络通讯处理器,具有ARM922T内核。同时该路由器还具有2M Flash,8M SDRAM,同时还留有一个SDRAM焊位,可以方便的把SDRAM的容量扩充为16M,为我们运行操作系统提供了足够的空间。选择该款路由器的另一个主要原因时KS8695X芯片提供了完备的开发资料,可以方便的从Micrel公司的FTP上(ftp:/)下载获得(文中所涉及到的芯片相关资料都从该FTP下载)。开发资料中包括了供KS8695X DEMO板运行的Linux操作系统的源代码和VxWorks系统的BSP源代码包,虽然KS8695X DEMO与我们进行改造的路由器的硬件配置不同,但只要做少许移植工作,便可以让以上程序支持我们的开发板,大大简化了我们的改造过程。IP0422路由器改造完成的电路板和电路板版本号如图1所示。以下将从硬件改造与软件DEMO移植两方面,详细阐述对IP0422的改造过程。     图1 改造完成电路板与电路板版本号2 硬件改造2.1 串口串口对一个嵌入式系统是致关重要的,通过串口可以与嵌入式系统进行交互。我们首先进行系统的串口改造。如图2所示,电路板上原本就将串口以4星条针的形式引出,估计是为了以后方便维修而设置的。经过分析发现,为了抗干扰,电路板上将主芯片串口的RX管脚进行了上拉,因而在一般使用中主芯片不会接收到任何的输入信号。所以我们对串口的改造分为两步:1、去掉RX管脚上的上拉电阻;2、自己搭建一个串口电平转换电路,使串口可以与PC机通信。串口各管脚定义与要去掉的电阻如图2所示。  图2 串口电路    串口电平转换电路负责单片机串口与PC机串口间电平的转换工作,使两者可以正常通信。串口电平转换电路使用最多的是MAXIM公司的产品,在这里可以使用MAX3232或MAX232,两者连接的电路原理图是相同的。由于MAX3232是使用3.3V进行供电的,所以可以直接与上图所示的4个管脚进行连接。若使用MAX232芯片,则要将芯片的供电管脚与电路板上输入电源5V相联。我使用的是MAX232芯片,5V电源端的连接如图3所示。MAX232、MAX3232连接原理图如图4所示:  图3 MAX232 5V连接端  图4 MAX232、MAX3232连接原理图由于以上接口电路比较简单,假如没有现成的串口电路板,可以直接购买面包板,在上面搭建,以后所说的接口电路也可用此方法构建,不再赘述。将相应的电路连接好后,与PC机的串口相连,打开串口工具DNW(超级终端也可以),设置波特率为38400,数据位为8,奇偶校验为无,停止位为1,硬件流控制为0(后面使用的串口设置只有波特率不同,其他设置都按此设置)。连接开发板的电源后,可以看到路由器启动时的提示信息,如图5所示,说明串口改造成功。  图5 IP0422启动串口输出2.2 JTAG接口    JTAG接口是作为开发板必须具备的。我们可以通过JTAG接口对板上的程序进行简单的调试,同时,还可以通过JTAG,将程序下载到板上的SDRAM中,对板上的Flash进行擦写操作。    对JTAG的改造要比串口困难,因为电路板上并没有为我们引出该接口,我们只有自己想办法做一个引出接口。如图6所示,图示位置将电路板的绝缘层用小刀刮掉,露出里面的铜箔,将一个2x10的条形插针一面的9个脚焊在该铜箔上,形成接地,这与我们将要使用的wiggle简易JTAG接口是一致的,同时还可以起到固定整个插座的作用。条针的2脚与串口接口中的3.3V电源端相连,作为简易JTAG接口的电源脚。然后将芯片上的与JTAG相关的各个管脚引出。如图6所示,绿色线一端连条针的第5脚,一端连芯片TDI上拉电阻R27的一端;橙色线一端连条针的第7脚,一端连芯片TMS上接电阻R28的一端;蓝色线一端连条针的第9脚,一端连芯片TCK上拉电阻R29的一端;白线一端连条针的第13脚,一端直接与芯片的TDO(113脚)相连。其中白色线与芯片的TDO(113脚)相连端是焊接的难点,由于芯片管脚太密,直接焊接很容易照成相邻管脚间的短路,所以建议将该管脚翘起来(如图6所示),然后再焊接,操作时要十分小心。    图6 JTAG接口与相应连线  图7 简易JTAG接口原理图     接口构造完成后,可以使用wiggle的简易JTAG口与计算机的并口相连。Wiggle的电路原理图如图7所示。从2.3 扩充SDRAM    路由板上的SDRAM只有8MB,由于Demo板的SDRAM是16MB,为了方便直接运行Demo板的Linux系统,需要为路由板扩充8M SDRAM。板上使用的SDRAM型号为IC42S16400-7TG,在市场中并不常见,根据查看该型号SDRAM的规格书,我们选取与其兼容的HY57V641620HG型号的SDRAM。由于路由板上原来就留有另一片SDRAM的焊接位置,扩充比较容易,只需要在焊接时注意芯片的1脚的位置,不要将芯片焊反了。SDRAM周围缺少的器件也都要焊上,排阻为33欧姆,电容使用0.1uF。由于原来路由器中的程序会检测外围SDRAM的数据宽度,进行SDRAM扩充后,原来程序将自动用32位数据宽度进行访问。所以在扩充SDRAM后,给路由板上电如串口输出正常(如图5所示),则说明扩充成功。    经过以上步骤,路由板的硬件改造已经完成,接下来就是要编写,移植软件,使路由板成为VxWorks与Linux操作系统的开发平台。3 软件编写3.1 Flash烧写软件    由于扩充了JTAG接口,我们可以自己编写一个程序,对板上的Flash进行擦写。具体原理是在路由板启动后,通过AXD中的命令行,设置KS8695X中的寄存器,将Flash与SDRAM映射到特定的区域,然后将擦写程序下载到SDRAM中运行,对板上的Flash进行编程。关于这方面文章网上已经有很多,同时还提供有源代码,在此就不再赘述。这里只把要点说一下。由于Arm9芯片具有MMU单元,默认的路由板上的原始程序是Linux,默认情况下会把MMU单元打开,使用数据缓存,所以我们在AXD Command窗口中执行内存区域配置时,要先把开着的MMU单元和数据缓存关闭,这样对KS8695寄存器的配置才会正确。对MMU中寄存器的设置如下图所示:    图8 AXD中CP15寄存器的设置    在Command窗口中键入命令obey C:cfg.ini(假定自己编写的配置文件cfg.ini在C盘根目录下),SDRAM被映射到了0x00xFFFFFF区域,Flash被映射到了0x28000000x29fffff区域。将Flash烧写程序下到0x0处开始运行,将串口波特率设置为115200,串口输出如图9所示。按“1”键选择烧写Flash,从DNW的“serial port”菜单中选transmit,然后选择发送要烧录的文件就可以对Flash进行擦写了。我的路由板上使用的Flash芯片型号为Spansion公司的S29AL016D70,不同型号的Flash,扇区分布与厂家ID可能不同,擦写协议也有可能不同,要对相应部分的程序做适当的修改。  图9 Flash擦写程序串口输出3.2 VxWorks BSP包的移植    Demo程序自带VxWorks的BSP包。根据Demo板的Datasheet1和VxWorks说明文档2中的说明,我们选择与这块路由板的配置基本相同的KS8695X构建目标进行改造。经过比较两者最大的差别就是在Flash部分,因而需要改写BSP包中与Flash接口的部分。其中包括Flash的初始化、擦写逻辑、程序在Flash中的布局,文件系统与Flash的接口等3。涉及到的主要文件与实现的功能如表1所示:文件名修改说明Ks8695p.h、config.h提供路由板相关寄存器设置值flashFsLib.c实现FAT文件系统接口flashDrvLib.c实现Flash操作接口flashAmdMem.h、flashAmdMem.c具体实现S29AL016D70的各种操作flashMem.h、flashMem.c提供程序在Flash中存储的位置和系统记录启动参数的接口表1 BSP修改相关文件说明    将相关文件修改好后,根据BSP说明2中的方法编译bootrom,选择的编译目标是KS8695X。接下来根据说明中的方法编译适用于网络下载的VxWorks映象和适用于Flash引导的VxWorks映象,同样使用的编译目标是KS8695X。将bootrom下载到路由板上,同时设置好FTP服务器,设置串口波特率为9600,默认情况下bootrom通过FTP从网络上下载引导启动VxWorks映象,启动过程如图10所示。也可以修改bootrom中的启动参数,从Flash的FAT文件系统中引导启动VxWorks映象,启动过程如图11所示。经过修改的BSP实现原有BSP的所有功能,各项功能的使用及参数设置参见BSP说明2,在此不再赘述。  图10 网络引导VxWorks输出  图11 Flash引导VxWorks输出3.3 u-boot和Linux的移植    开发包中带有供Demo使用的Linux系统,由于Demo板使用的Flash为4M4,该Linux系统中Linux内核加上文件系统有2M多,路由板上使用的是2M的Flash,而且没有扩充的可能性,显然不能直接使用。经过对Demo板自带的引导程序的分析,发现Demo板在运行Linux前,引导程序将Linux系统整个拷贝到16M的SDRAM中运行。我们的路由板已经扩充为16M的SDRAM,所以我们可以不将Linux系统存储在Flash中,而直接使用网络,将Linux系统下载到SDRAM中然后运行。当然,要将Linux直接下载到SDRAM中运行,还需要有引导程序的帮助。u-boot是Arm系统中广泛使用的引导程序,同时其中已经有使用KS8695芯片的构建目标,目标的配置名称是cm4008,所以我们选择在原来的构建目标上进行改造,将u-boot移植到我们的路由板上。关于u-boot的移植的文章网上很多,移植方法在此就不再赘述,涉及到的主要文件与实现的功能如表2所示:文件名修改说明includeconfigscm4008.hu-boot特定平台的配置文件includeasm-armarch-ks8695platform.h硬件平台的参数设置boardcm4008.cu-boot初始化设置boardflash.cu-boot中flash的接口部分driversks8695eth.cu-boot中使用KS8695的驱动表2 Linux修改相关文件说明    需要特别注意的是u-boot中自带的KS8695芯片的网口驱动是使用路由板上的LAN口5,而不是WLAN口,因而在下载Linux系统时网线应该插在LAN口上。同时,该驱动程序在复位网口时有个错误,会导致除第一次下载文件正常外,后续的下载文件都发生错误,需要手动修改源文件加以修正。将串口波特率设置为115200,启动u-boot。通过设置u-boot环境变量,修改串口波特率为38400,设置路电板的IP地址和PC机端的IP程序。以及默认的引导参数bootcmd,如图12所示。  图12 u-boot默认参数的设置其中zImage和ramdisk.gz分别是Demo板Linux系统编译所得的Linux内核和文件系统,编译的方法详见开发包中带的Linux说明手册4,param.bin是由Demo所带的bootloader分析得到的启动参数。将这些文件通过u-boot的TFTP功能下载到SDRAM中的指定位置,然后运行,串口输出如下图所示:  图13 u-boot引导Linux输出启动过程中会出现Flash设备加载错误,这是由于没有修改Linux中的Flash驱动,由于Flash只是起到保存网页设置的作用,因而不会影响Linux的正常运行,有兴趣的朋友可以自己修改。启动完成后,访问Linux中的http设置网页如图14所示。  图14 Linux设置网页4 结语    本文详细阐述了将IP0422路由器改造为适合于学习VxWorks与Linux操作系统的Arm9平台的过程。整个过程花费低廉,改造过程简单易行。同时在改造过程中还可以学到嵌入式系统软件与硬件的多方面知识。该改造方案是动手能力强,同时又不想花很多钱购买开发板的嵌入式开发爱好者的不错的选择。参考文献:1、Micrel. KS8695/KS8695X Demo Board Users Guide. USA: Micrel Company, 20042、Micrel. KS8695-Family VxWorks BSP Users Manual. USA: Micrel Company, 20043、周启平,张杨.VxWorks下设备驱动程序及BSP开发指南.北京:中国电力出版社,20044、Micrel. KS8695X SOHO Router Quick Start Guide. USA: Micrel Company, 20045、Micrel. KS8695X Register Description. USA: Micrel Company, 2004

    注意事项

    本文(2647.自制廉价的Arm9 开发平台.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开