引言
个人电脑可以支持多种启动方式,比如硬盘启动、DVD驱动器启动,或者U盘启动。嵌入式处理器也支持多种启动介质和启动顺序,在嵌入式系统中常用的启动介质有NAND Flash、eMMC存储器、SD卡、USB接口、以太网接口。
一般地,嵌入式系统中的用户程序与系统存储通常保存在设备内部NAND Flash或者eMMC存储器中。由于这类存储器技术上的缺陷,某些位发生翻转可能使得整个块(Block)无法使用,导致引导程序不能正常运行,设备无法启动,系统不能正常使用;另外,由于系统功能更新的需要,常常因人为无意地把用户引导代码擦除掉而造成设备无法开机。因此无论是开发还是后期维护,嵌入式系统均需要采用多种系统引导启动方式,现在的切换处理方式是:拆开设备,重新配置引导电路;外置按键,通过按键选择不同配置方式,如中国专利201010197315.1公开的嵌入式设备及其内嵌软件的更新方法,通过按下防误触发按键来进行系统固件更新[1]。但这些技术方法都存在一定的局限性与缺点,如操作复杂、需要特殊设计外观结构、成本较高等。
本文利用设备自身的供电接口,通过改变供电电压值范围来触发内部电路,从而切换不同的存储固件程序和用户程序的存储介质,达到利用外部便携的存储介质来更新系统镜像和用户程序的目的。这种技术方法克服了上述的缺陷,为开发及维护提供了极大的便利。
1 方案设计
正常运行的设备内部的存储介质,如NAND Flash、eMMC存储器;外部便携的存储介质,如TF卡,存储介质通过存储器通信接口与微处理器相连。系统镜像和用户程序引导启动介质的选择和顺序,是通过微处理器的引导配置引脚设置的。若前一存储介质供电正常且引导程序完整,则从该介质引导启动系统;若两者条件其中一个不符合,则跳转检测下一存储介质。
本方案通过控制存储介质供电回路的通断,可以改变系统镜像引导启动的顺序,利用功率MOS(MetalOxideSemiconductor)管的开关应用可以达到该目的。而电子开关的通断则通过设备外部供电电源输入的电压值高低来触发,因其电压值大小与系统工作电压值大小的不同等电平值,须将外部电压分压至合适的电平范围,与系统工作电压通过电压比较器进行比较,输出高低两种状态的电平值,作为电子开关的控制信号。
考虑外部输入电源电压的不稳定性,防止电压比较器输出状态的误翻转,将比较器设计为滞回比较器,利用滞回宽度缓冲输出抖动。
本文以微处理器S5PV210以及eMMC存储器和TF卡存储器为设计实例。系统构成框图如图1所示。

图1 系统构成框架图
需要指出的是,微处理器S5PV210的引导启动顺序为内部iROM至第一级引导程序,
再到第二级引导程序,图1所述的存储器引导属于第一级和第二级引导[2]。在由内部iROM引导第一级引导程序时,引导介质选择是通过微处理器的引导操作模式配置引脚设置的,本设计配置为SD/MMC引导,且eMMC存储器(内置MMC控制器及接口)和TF卡(SD接口标准)存储器通信接口分别为MMC0和MMC2,因此系统第一级引导首先从eMMC存储器开始,不满足条件则从TF卡存储器引导。
2 实现电路
除了系统的微处理器及存储器外,还需要设计的电路单元包括输入电源的分压网络、滞回比较器和电子开关。本节分别阐述这些电路单元的具体实现。
2.1 电子开关
如第1节中所述,首先引导启动的是eMMC存储器,通过控制其供电回路可在eMMC存储器和TF卡存储器之间进行引导存储介质的选择。作为电源通路上的电子开关,选用MOS管,同时满足过流能力、最大击穿电压及低导通电阻损耗。
另外,正常工作状态下,eMMC存储器须工作,因此电子开关应是常闭状态,应选用P沟道MOS管。
栅极开启信号由滞回比较器的输出控制,电路图如图2所示。

图2 电子开关单元电路图
2.2 滞回比较器
电子开关的通断两个状态量由比较器输出控制,比较器的输入则分别是固定参考电压和外部直流输入的分压电压。另外,为了抑制外部输入的噪声、避免输出不期望的抖动、增强系统的稳定性,设计了外部滞回电路,由正反馈电路构成。
本文实例中的比较器选用了输出为开漏结构的比较器(如LM2903),因此须加外部上拉电阻,选用10 kΩ。滞回比较器电路图如图3所示。

图3 滞回比较器电路图
滞回比较器参数的具体确定如下:
首先,在选取参考电压时须考虑比较器的输入共模电压范围,LM2903的共模输入电压范围在25 ℃下为0~1.5 V,本电路供电电压为3.3 V,因此共模输入电压范围为0~1.8 V;系统供电电源为1.2 V电压,可使用。
其次,根据参考电压,确定滞回阈值电压的上下限。设备实际工作情况要求外部直流输入24 V以下eMMC存储器供电,30 V以上断电,且断电情况属于非正常工作模式。因此滞回窗口选取220 mV,根据参考电压值,
下限VTHR选取1.1 V,上限VTHF选取1.32 V。滞回电压上下限及输出电压传输曲线如图4所示。

图4 滞回比较器传输曲线
再次,选取反馈电阻及正相输入电阻。根据图3的电流方向以及运算放大器的“虚短”原理,两种输出状态情况下的关系有:

将VCC、VRef、VTHF、VTHR及RL的值代入可得:

由式(3)、(4)解得:R1=1.82 kΩ,R2=20 kΩ。实际电阻值选取R1=2.22 kΩ,R2=20 kΩ。反代入可得VTHR=1.08 V,VTHF =1.34 V,符合设计要求。
另外,考虑比较器LM2903的输入偏置电流在25 ℃工作环境下,最大值为250 nA,因此如图3所示的IR2电流值至少为25 μA,同样地,两种输出状态下有:

由式(5)、(6)求解得:R2=78 kΩ,R2=52.8 kΩ。设计选用的R2值20 kΩ小于52.8 kΩ,不影响因漏电流引起的输出误差,符合设计需求。
最后,选取反相输入电阻。R3与正相输入阻抗相当,即R2和RL串联后与R1并联,电阻值2.04 kΩ相当,也取2.2 kΩ。
2.3 分压网络
分压网络用于将外部输入的较大电压值范围分压至滞回比较器可输入的共模电压范围内,且满足系统状态切换的滞回电压阈值点。
如2.2节所述,阈值电压值分别为VTHR=1.08 V,VTHF =1.34 V;而外部可调直流输入分别对应26 V和32 V,分压网络电路图如图5所示,则

图5 分压网络电路图

分别将VCC_DCIN的26 V、32 V和Vout的1.08 V、1.34 V代入式(7)可得:R1=23.07×R2,及R1=22.88×R2。为减少分压网络的额外功耗,限定分压网络上的电流为0.1 mA,则可得R2至少为13.4 kΩ。实际电阻值可选取R1=300 kΩ,R2=13 kΩ。
3 系统工作流程
系统工作目的是切换不同的存储介质,以引导系统正常启动及更新固件镜像或用户程序。系统在已有可正常运行的固件镜像和用户程序的情况下,工作状态与固件镜像或用户程序损坏以及须更新的情况下工作流程不同。系统整体工作流程如图6所示。

图6 系统工作流程
结语
本文设计实现了一种嵌入式系统简便切换存储介质引导启动的方法。通过改变设备的输入电源电压值范围,触发设备内部滞回比较器输出状态翻转,控制电子开关通断第一引导顺序的存储介质的电源,切换至外部存储介质,可以方便地升级更新固件镜像和用户程序。实际电路在卫星导航手持设备上进行了验证,系统可稳定工作,且节省了产品开发、生产过程的成本。