SoC数据下载系统的固件设计

来源 :科协论坛·下半月 | 被引量 : 0次 | 上传用户:ktcargo147
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:在市场经济的今天,一个嵌入式产品的上市时间决定了该产品的价值。而数据下载是嵌入式产品调试的必经环节,这就要求有一种方便快速的数据下载方式。在自主设计的SoC数据下载电路系统的前提下,通过Cypress公司CY7C68013的GPIO提供了上位机数据源,实现了该系统的软件设计。
  关键词:嵌入式系统 GPIO 数据下载
  中图分类号:TP39 文献标识码:A 文章编号:1007-3973(2012)012-076-02
  1引言
  对于目前大多数使用ARM内核的嵌入式芯片都是使用JTAG的数据下载方式。而对于一些使用无JTAG的内核的芯片则数据的下载乃至调试都十分麻烦。在此,笔者针对内部通信使用AMBA总线协议的芯片设计了一个数据下载系统模块。由于USB协议有效快速的特点,通过USB单片机将在PC上编译的代码数据下载到SoC芯片中。
  本文主要阐述USB单片机如何从PC主机接收到下载数据并将下载数据传输到SoC芯片中。
  2CY7C68013芯片
  由Cypress 公司推出的智能USB接口CY7C68013控制芯片,是第一款集成USB2.0协议的微控制器,支持12Mb/s 的全速传输和480Mbps的高速传输,可使用4种传输方式:控制传输、中断传输、块传输和同步传输;完全适用于USB2.0,并兼容USB1.1。CY7C68013 芯片包括l个8051 处理器、1个SIE、1个USB 收发器、8.5KB 片上RAM、4KBFIFO 内存以及l 个通用可程序设计界面(GPIF)。CY7C68013是全面集成的解决方案,占用电路板空间少,开发时间短。
  Cypress 公司CY7C68013 提供给用户固件函数库Ezusb.lib 和固件框架。免去了用户自己编写一些通用性比较强、模式化的程序。如果不提供,则很难写出如此高效,结构紧凑的程序。实际上此框架和CY7C68013 的内部结构关系十分密切,如果没有足够的内部数据也不可能写得出来。在框架的基础上,用户只需在相应的地方写上相应的代码即可完成USB 的相关工作。图1为Cypress提供的固件框架的流程图。
  首先设置所有内部状态,对芯片的寄存器进行初始化,然后调用用户初始化程TD_Init(),打开需要的中断,下面重新枚举USB设备,软件模拟断开连接,并重新连接到PC。在重新连接到PC之前,设置成由固件响应处理PC发送的USB请求。在重枚举之后进入一个循环的执行程序:(1)调用用户功能函数TD_Poll(),需要完成的用户功能代码在此处编写。(2)当端点0接受到USB命令时,调用任务处理函数SetupCommand()。(3)判断USB内核是否收到总线挂起事件,如果有的话调用用户终止函数Suspend()。接下来检测是否收到唤醒事件Resume,有两种方式进行唤醒,一是通过WAKEUP引脚,另一个是USB总线上检测到唤醒状态。如果检测到唤醒事件的话,调用用户函数TD_Resume()。
  Cypress公司的开发包的Target文件夹下,提供了基本的USB固件开发的框架。这里提供了对各种USB请求、中断处理以及寄存器定义的封装。这些固件封装包括以下几个程序文件:
  fw.c:USB固件程序的主文档,其中包含main()函数,以及一些任务调度、SETUP命令的处理等。
  periph.c:其中包含了USB初始化和任务处理函数,在这里添加自己的任务代码。
  dscr.a51:汇编档,包含了USB设备的各种描述符。
  lp.h:头文件,包含EZ-USB的通用常量、宏、数据类型和库函数的原型。
  lpregs.h:EZ-USB的寄存器声明和位标志定义。
  syncdly.h:包含同步延时的宏定义,用于一些需要同步延时的寄存器。
  EZUSB.lib:EZ-USB的库函数文件。
  USBJMPTB.obj:提供了中断服务向量跳转表。
  3下载系统中单片机固件设计
  USB单片机设备的固件程序与PC端上位机通信完成如下功能:(1)检测USB单片机SoC芯片的连接;(2)控制SoC芯片进入数据下载状态;(3)通过PC端应用程序传输需下载的数据;(4)应用程序发出需读取地址信息,固件程序将读取的数据传送回PC;(5)应用程序控制SoC退出下载模式,重新启动,正常执行程序。
  本设计中,检测SoC的连接状态;控制SoC芯片进入数据下载状态;控制SoC退出下载模式并重新启动;以及写入最后一个下载数据和读取最后两个数据此五项功能使用USB端点0进行通讯,为自定义设备请求命令,首先在lp.h中添加自定义设备请求。在fw.c中添加对自定义请求的回应。当收到PC发送过来的设置包时,会产生收到有效设置数据的中断,在中断函数ISR_Sudav()中,使GotSUB=1从而进入命令处理函数void SetupCommand(void),并且清除中断。在void SetupCommand(void)中,根据SETUPDAT[1]的值来鉴别不同的请求命令。在peirph.c文件中,分别为这五个请求DR_CheckConnect(),DR_EnterDownload(),DR_LastWrite(),DR_LastRead(),DR_ResetSoC()添加请求处理子程序的代码。
  本设计的SoC硬件下载电路部分是根据JTAG协议发展变化而来,有效的利用了JTAG的思想实现了数据下载的目的。单片机与SoC芯片的连接图如图2所示。通过单片机的GPIO实现了对SoC的信号和数据传输。
  首先在初始化的时候,配置I/O引脚E,低4个口为输出,输出信号TCK,TMS,TDI,TRST,高4为配置为输入,其中I/O引脚E的第5位设置为输入接收TDO。   当接收到SC_CheckConnect()命令时,读IOE.4口的状态,IOE.4口连接下拉电阻,在没有外部电路驱动时读IOE.4的值为0。SoC的TDO输出引脚接上拉电阻,在下载电路状态非shift-DR或者shift-IR时,SoC的TDO对应引脚为输入,引脚电平为高。当单片机和SoC连接后,单片机IOE.4的引脚电平为高。将读到的引脚状态通过EP0返回给PC,PC根据引脚的状态来确定SoC是否连接到单片机。
  当接收到SC_EnterDownload()命令,首先单片机复位下载电路,使SoC下载电路进入确定的logic-reset状态,接着要使SoC进入数据下载状态,即使下载电路的指令寄存器为8’b10101110,在移入指令的同时,将捕获的固定指令值2’b10101010值返回给单片机。单片机将此值返回PC,PC检测返回的值判断确定是否进入下载状态,若没有收到正确的返回值,继续发送DR_EnterDownload(),当失败了5次后,在接口显示下载失败。
  当接收SC_ResetSoC()命令时,向SoC发送PMU中软复位寄存器的地址,再发送写入数值0x1,具体控制总线进行总线上设备写操作的方法和下述下载数据方法雷同。
  在用户函数TD_Poll()中执行核心的三个功能:(1)从PC通过USB接收将要下载到SoC中的下载数据,将这些数据通过GPIO,按制定的下载协议方式发送到SoC;(2)从PC通过USB接收将要读取的SoC的读取地址,将这些数据通过GPIO,按下载协议方式发送到SoC;(3)接收SoC移位出的TDO,选择出有效的存储地址的数据,并通过USB返回给PC。分别由下面三个函数和上述两个自定义命令函数来完成上述功能:
  Void Send_wdata();
  Void Send_raddr();
  Void Return_rdata();
  BOOL DR_LastWrite();
  BOOL DR_LastRead();
  这五个函数的运行由PC通过USB控制,需要下载到SoC中的数据PC先发送到端点2中,需要读取SoC的地址PC先发送到端点4中,端点6用返回PC要求读取的地址的数据。具体三个函数的触发是端点2,4中有来自PC的数据,PC已经读取端点6的数据现在端点6的EP6FIFOBUF为空可以放新的返回数据了。由于本设计独特的下载方式以及AMBA总线协议的要求,最后一个下载数据和最后两个地址数据的读取的命令由USB的端点0来接收,并通过 DR_LastWrite()和DR_LastRead()这两个函数来完成。
  4结语
  本文介绍了一个基于SoC的数据下载系统的固件设计方案。自主设计的下载模块针对所有内部使用AMBA总线通信的芯片都适用,体现了该下载系统的通用性。此外,系统没有使用另外的硬件(如CPLD)运用单片机GPIO实现了下载协议。
其他文献
摘 要:利用小波包能量法提取数据特征值,减轻了通过波形分析法所需要做的大量特征提取工作;并且利用支持向量机(SVM)作为故障分类模型,结合能量法所提取的特征数据,最终得出的结果稳定准确率高。最后拓展讨论了选取不同归一化数据处理方法或不归一化,以及选用不同核函数对最终结果(准确率)的影响。  关键词:故障诊断 柴油机 小波分解 支持向量机(SVM)  中图分类号:TK428 文献标识码:A 文章编号
摘 要:介绍河北国华定洲电厂在脱硝设施实际运行过程中,存在脱硝设施左右侧脱除效率不平衡,脱硝反应器出口、脱硫入口、烟气排放出口NO2浓度偏差大等新问题,给运行调整及数据统计分析带来问题,说明对脱硝设施定期进行检修维护及调整试验的必要性。  关键词:烟气脱硝 运行问题 调整试验  中图分类号:X773 文献标识码:A 文章编号:1007-3973(2012)012-050-02  1引言  河北国华
摘 要:太阳能发电技术已成为当今新能源开发利用的一项重要课题,光伏并网发电是其中比较有代表性和发展前景的新技术,主要核心部件是光伏并网逆变器。结合Matlab/Simulink仿真实验,通过建立光伏模块、满功率跟踪控制器数学模型以及仿真模块,分析光伏模块所展示出的电气特性,分别提出集成光伏模块和满功率跟踪控制的并网逆变器模型以及电流滞环跟踪控制的数学模型和控制方案,验证满功率跟踪算法及光伏模块数学
鸡西矿业集团公司张辰煤矿西三采区3
期刊
提出了一种基于神经网络的自整定函数器.其利用种经网络的非线性映射和自学习能力,实现函数器的自动整定.这种方法可以提高函数器的逼近精度,缩短现场调整时间. A self-tuni
摘 要:随着我国社会经济的快速发展,能源问题引起了人们的广泛关注,电能作为现在的主要能源之一,与人们的生活息息相关。如何有效的提高生产效率,降低能源消耗,成为人们争相讨论的课题。主要对集控技术在火力发电机组的运行条件与控制模式进行阐述,并对集控技术在实际应用中的技术操作和问题进行分析,为相关人员提供参考意见。  关键词:火力发电 集控技术 发电机组 技术分析  中图分类号:TM621 文献标识码:
摘 要:城市变电站建设是电力系统建设的重要组成部分,介绍城市变电站电气部分设计分析,主要包括变压器的选择、主要电气设备的选型、电气继电保护、以及电力补偿设备的选择。通过科学合理配置,从而实现城市变电站电气部分配置,保障电站良好的投入运行。  关键词:变电所 变压器 电气设备  中图分类号:TM63 文献标识码:A 文章编号:1007-3973(2012)012-044-02  随着我国城市化进程的
为了培养适应汽车服务与营销行业需要的高素质技能型人才,需对高职汽车服务人才需求状况进行调研,笔者借鉴邢台职业院校的人才培养经验,分析河套大学人才培养模式中存在的问
摘 要:随着数字时代的到来,探讨数字电视一体的优势及发展过程中出现的相关问题,展望数字电视一体的发展趋势。  关键词:数字电视 高清信号 机顶盒 数字电视一体机  中图分类号:TN9414 文献标识码:A 文章编号:1007-3973(2012)012-060-02  随着数字时代的到来,衍生的一个由终端厂商推出的“数字电视一体机”,本文主要讲述有关数字电视一体机的发展和发展中出现的一些问题。  
期刊