基于片外SPI Flash的OTP烧录器的设计与实现

2013-09-04 02:04任金平
关键词:机软件固件上位

连 赟,马 琪,任金平,屠 炜

(1.杭州电子科技大学微电子CAD研究所,浙江杭州310018;2.杭州微纳科技有限公司,浙江杭州310012)

0 引言

一次可编程(One Time Programmable,OTP)存储器拥有一次性可编程能力,适合既要求一定灵活性、又要求低成本的应用场合,在电子行业有着广泛的应用。对于内部集成了OTP的MCU/SoC芯片,需要开发与之配套的OTP烧录器,使客户在量产时能够方便实现一次性编程烧写功能,把程序代码或数据固化到存储器中。WN6102是基于国产32位嵌入式CPU核CK610E设计的[1]、面向人机交互和无线音频等应用领域的MCU主控芯片,内部集成了32K×8bits的OTP[2]。本文以WN6102为例,设计与实现一款基于外部SPI Flash的OTP烧录器。

1 总体设计

基于片外SPI Flash的OTP烧录器框架如图1所示。当OTP烧录器通过USB连接PC主机(上位机)时,会在主机上枚举出1个USB复合设备[3],其中包括1个自定义HID通道,称之为“Vendor”通道,上位机通过“Vendor”通道实现和OTP烧录器的双向通信。

图1 基于外部SPI Flash的OTP烧录器框架图

设置WN6102芯片的SYSTEM_MODE_2引脚为高电平,芯片内部2kB ROM中的bootload程序会将存储在片外SPI Flash中起始地址为0x000000的烧录器固件程序搬运到内存中运行;烧录器固件程序和上位机应用软件的交互通信,将上位机中的用户文件数据下载到SPI Flash起始地址为0x020100处;烧录器固件程序在用户数据下载完成后,一直检查OTP烧录启动标志信号(例如按键)是否到达,一旦检测到启动标志,固件程序就会进入OTP烧写函数,将存储在0x020100处的用户数据烧录到OTP,完成烧录。

2 硬件实现

WN6102具有USB接口、4套标准I2S/SPDIF音频接口、3个SPI接口、48个GPIO、16个12bit ADC通道、80kB的SRAM和32kB的OTP,支持8/16/32/44.1/48/96kHz采样率,支持外部SPI Flash、FEC编解码、CRC,并集成AUDIO DSP加速器。

OTP烧录器具有1个芯片Socket底座用于插拔WN6102,USB接口,SPI接口的512k片外Flash GD25Q40,16M的晶振,1个LCD液晶显示屏,3个按键,3个LED灯。本系统使用外接5V的直流电源供电,通过TLV70033 LDO转换为3.3V为WN6102芯片供电,通过DC5/DC65升压电路转换为6.5V为OTP烧录引脚供电。

3 软件设计

3.1 烧录器固件程序设计

固件与硬件联系紧密,固件程序的设计需要对硬件结构和硬件资源非常熟悉。本固件程序的软件流程为:

将WN6102芯片放入Socket底座并上电之后,从片外的SPI Flash芯片中(起始地址为0x000000)加载烧录器固件程序代码到片上SRAM中运行。固件程序开始运行时,首先对芯片进行时钟、中断、定时器、GPIO、USB、Flash等设备的初始化,然后进入主循环。若USB接收到上位机软件通过Vendor通道传输过来的数据包,则进入Vendor通道数据处理函数DealWithVendor。根据数据包中的命令字分别进行读取SPI Flash中程序版本信息,下载SPI Flash程序文件和OTP配置信息,上传OTP中数据的操作。其中程序文件和配置信息存储到片外SPI Flash中异于固件程序地址的特定区域。数据处理函数DealWithVendor完成后,返回主循环。若固件程序检测到按键或者延时等OTP烧录启动信号(由用户在上位机软件目录中的配置文件中配置),则进入OTP烧录函数OtpBurn,完成目标OTP的设置参数和程序的烧录并将结果显示在LCD液晶显示屏上。烧录结束,从Socket底座中取出该芯片,放入下一芯片,不断重复上述流程。

图2 固件程序流程图

3.2 上位机软件设计

数据传输需要按照特定的数据格式和流程进行。制定了1套烧录WN6102目标芯片的OTP烧录器接口协议,具体命令如图3所示,用以实现上位机软件和烧录器的命令和数据交互,上位机下传命令和烧录器响应命令长度都是32bytes[4]。由于 OTP 只能烧录 1 次,在未启动OTP烧录信号时,用户可以通过上位机更新和覆盖存储在片外SPI Flash中需要烧录的数据。

图3 上位机与烧录器命令和数据交互的接口协议流程

上位机软件界面如图4所示,主要包括以下功能:(1)查找设备:查找OTP烧录器在主机上枚举出的USB复合设备,读取并显示烧录器固件程序的版本号,判断目标设备是否连接成功;(2)读取数据:读取该芯片OTP中的数据,检查是否为空;(3)下载配置:根据用户需要设置RSA KEY[5]、JTAG、烧录系列号等配置信息,下载的同时会另存为1个Config.ini文件在当前目录下;(4)下载程序:打开需要烧录的bin目标文件,并下载;(5)校验:读取OTP数据并与原始bin目标文件比较,判断是否烧写正确。

图4 上位机软件界面

4 结束语

本设计通过USB2.0接口与上位机传输数据,并运用片外SPI Flash作为桥梁,实现对WN6102芯片的OTP烧录。本文设计的烧录器经过实际应用,达到了预期的要求。

[1]童鼎.基于WN6102的音频技术研究与优化[D].杭州:杭州电子科技大学,2012.

[2]Alston.EO0032K8SE130GO03[S].台北:力旺电子股份有限公司,2011.

[3]刘银平,刘晓升.基于USB2.0接口的10-OTP烧录器设计[J].电脑知识与技术.2007,4(24):60-62.

[4]唐大仕,刘光.Visual C++.NET应用教程[M].北京:清华大学出版社,2006:358.

[5]徐元哲.Fs88x6系列加密芯片烧录器的设计与实现[D].苏州:苏州大学,2010.

猜你喜欢
机软件固件上位
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
基于固件的远程身份认证
道岔监测系统上位机软件设计
基于正交试验法的北斗用户机软件测试用例设计
PCI-e高速数据采集卡的驱动与上位机软件设计
以新思路促推现代农业上位
提取ROM固件中的APP
一种通过USB接口的可靠固件升级技术