Bios软件

2024-09-21

Bios软件(共7篇)

Bios软件 篇1

摘要:为了克服系统非线性因素给伺服系统造成的不稳定性,以及满足系统高精度指标要求等目的,模糊算法和传统PID算法结合构成的双模控制算法在伺服控制系统中得到了广泛应用。但由于其相对于传统PID算法运算量大,传统的顺序软件设计方法往往不能够满足对实时性要求较高的伺服控制系统。分析了“速度环路+位置环路”双环控制系统原理,速度环路采用PID控制而位置环路采用模糊PI控制的控制策略,建立了基于DSP/BIOS的伺服系统软件设计。介绍了任务线程的划分规则。将设计的软件在实际系统中。结果表明,系统的控制精度、可靠性得到大大提高,也利于软件的升级与扩展。

关键词:模糊算法,双环控制,PID,DSP/BIOS

在现代伺服控制领域,采用DSP作为主控制器,“速度环路+位置环路”的双闭环控制策略被广泛采用。这种控制策略在系统阻尼系数很小的情况下,使得系统具有较快的响应速度和较小的超调,负载适应性好。在负载突变时能够快速地恢复稳定状态[1]。传统PID算法在系统非线性因素可以忽略的情况下,控制效果良好,但对于一些非线性因素比较严重的系统中,传统的PID控制不能从根本消除。因而“模糊+PID”双模控制算法被引用到系统中,能够从根本上消除系统的震荡和不稳定性,并且能达到较高的控制精度和响应速度。但是,这种双模控制算法比较复杂,运算量大,传统的编程模式按照顺序将软件的各个模块组织在一起,模块间处于紧耦合状态[2],给软件系统的升级带来很多不便;而且不具备实时性,这对于一些对实时性要求很严格的控制领域就力不从心。此时,实时操作系统应运而生。与此同时,TI开发了精简的实时操作系统DSP/BIOS,使得控制系统软件开发难度大大降低。而且DSP/BIOS操作系统具有界面形式的友好开发方式,直接嵌入到CCS开发环境中。相对于目前主流的实时操作系统如Linux,WindowsCE等更适合对DSP软件的开发。本文在对“速度环路+位置环路”双闭环控制原理分析的基础之上,利用C开发语言[2,7,8],建立了基于DSP/BIOS的系统软件,并在硬件平台上给予验证,较传统程序控制方式,系统精度得到提高,软件的模块化程度也得到改善。

1 双闭环控制系统原理

“速度环+位置环”双闭环控制系统有主控芯片F2812、电源模块、功放模块、电机负载模块、传动模块和检测模块组成,其系统结构如图1所示。

双闭环控制系统引入位置控制器和速度控制器,构成了位置负反馈环路和速度负反馈环路,其中,速度反馈环路为内环,位置反馈环路为外环。内环测速元件测量负载的转速,经DSP外设AD转化后反馈到速度环的信号反馈端;位置控制器将位置给定信号与位置反馈信号的差值进行算法求解,把求解的结果作为速度环路的给定量;速度环路控制器计算得到的控制量调节PWM的占空比,从而控制电机的运转。

传统的控制算法中,两个控制器大都采用PID控制,PID控制器算法发展成熟、简单实用,数字化后可以在数字控制器中实现对电机的有效控制, 在精度要求不太高和非线性因素对系统的影响可以忽略的系统中得到了广泛的应用。但是,对于一些由于大负载、变速等引入传动机构的应用系统来说,在引入传动机构的同时带来了齿隙、摩擦等不可忽略的非线性因素,这些非线性会导致系统发生“极限环”震荡或者发散,从而使系统不稳定。PID控制器由于是线性控制器,不能从根本上解决这种问题。随着控制理论的发展,尤其是现代控制理论和智能控制理论的发展,各种新型控制算法和智能控制算法应运而生。模糊控制作为现代控制理论中智能控制的一个重要分支,由于具备不依赖于精确的数学模型、抗干扰能力强、反应速度快、易于掌握等优点,常常与传统PID控制结合形成“模糊+PID”双模控制或者模糊自适应控制,在实际控制系统中备受青睐。

受系统成本的限制,位置检测元件可以用软件计算代替,实际应用时,可以对AD采集的速度信号进行累加得到负载的转角信号。其它模块,因系统不同而不同,再次就不再阐述。

2 控制系统软件构件

基于DSP/BIOS控制系统软件构件如图2所示,分为上位机端(PC端)和下位机端(DSP端)。

PC端采用VB语言编写伺服控制系统的控制界面(控制界面如图3所示),PC端完成串口通信参数设置、DSP端命令信息返回显示、速度显示区域以及向DSP端发送诸如读取速度、电机启动、电机停止、正转、反转、停止显示、发送设定电机转速等命令。

下位机端通过串行口与PC端通信,接受PC端的命令并向PC端传送电机的运行状态,如速度等信息。下位机端软件有主函数,DSP/BIOS内核组成。主函数完成系统时钟、中断、串口、AD、EV和全局变量的初始化工作。DSP/BIOS操作系统内核则按照线程的优先级实行任务调度,完成数据采集,算法运算,响应PC端命令,向PC端发送负载转速等信息,实现对电机的实时有效控制。

3 线程模块划分与实现

3.1 线程划分与实现

3.1.1 线程划分的原则[3][5]

DSP/BIOS的线程按照优先级的高低可以分为以下四种:硬件中断(HWI),软件中断(SWI),任务(TSK)和后台线程(IDL)。

DSP/BIOS图形配置工具根据不同系列的DSP有稍微区别,但基本包括以下模块:系统服务管理模块(System),系统检测类模块(Instrument),线程管理类模块(Scheduling),任务协调同步类模块(Synchronization)和输入输出模块(Input/output)模块。DSP/BIOS本身嵌入到CCS开发系统中,方便了用户的开发[6]。

与硬件联系紧密实时性要求较高的模块应作为硬件中断[9],本系统中负载速度采集任务对软件设计成败和算法效果优良起着决定性作用,要求在设定的采样频率下采集负载的速度信号反馈给速度环路,所以要设定为硬件中断。F2812的PIE第一组中断的INTx.6被分配为ADC中断,调度函数设置为_ad_rec。DSP端通过串口接收PC端发送来的命令,也要求具有很高的实时性,系统中也被设置为硬件中断。串口接收中断属于PIE第九组中断的INTx.1,调度函数设为_sica_rec。

软件中断线程的优先级低于硬件中断高于任务线程,相对于一般任务而言比较重要且发生频率较高的子函数可以设置为软件中断线程。本系统中,速度环算法和位置环算法在负载速度采集后就要被触发,发生频率相对较高,在这里被设置为软件中断。另外,DSP对接受到的PC命令进行正确解析要在串口接收中断后立即执行,所以也被设置为SWI。速度环调度函数名称为_speed_algcal,优先级为2;位置环调度函数名称为_positon_algcal,优先级为1;命令解析调度函数名称为_comdanalysis,优先级为3。再者,在PC端需要利用DSP端向PC通过串口发送的负载转速数据来描点绘制速度曲线,因此,将向PC端发送数据的任务设置为SWI,调度函数为_senddata,优先级为4。

对于一个RTOS来说,任务线程也是整个系统的重要组成部分,不像HWI和SWI必须执行完毕才能执行其它线程,任务线程可以被抢占分段运行,可以单独运行也可以并行运行。DSP/BIOS的任务有16个优先级(0~15),可供用户使用的是1~15级。任务按照设定好的优先级别执行,高优先级的任务可以抢占低优先级的任务。任务有四种状态:运行态、就绪态、阻塞态和终止态,一个任务被创建后,在每个时刻只能处于四种状态之一。

在DSP/BIOS内核中,IDL在四种线程中优先级最低,在没有前三种线程运行的情况下,IDL线程得以运行[5]。在所有线程运行前,系统从main()返回后进入后台空闲循环,激活HWI、SWI、TSK和IDL线程。

3.1.2 线程分配实现

上述所有的线程分配都是借助于DSP/BIOS可视化的界面进行的,在工程的DSP/BIOS configuration 界面中,添加系统所需要的所有线程并分别为它们指定优先级和调度函数名称,对于任务线程还要为其指定堆栈大小。DSP/BIOS线程分配实现如图4所示。

由于篇幅所限,仅以负载速度采集为例进行说明。在HardWare Interrupt Service Routing Manager 上右键,展开PIE INTERRUPTS,在PIE_INT1_6的属性设置中,输入调度函数名称_ad_rec,勾选Dispatch单选框,保存就完成了ADC中断的设置。由此,也可以看出,基于DSP/BIOS进行程序设计的便捷性。

3.2 线程执行与调度分析[4,9,10]

片上AD中断有EV本身的定时器触发,按照设定的采样频率发生中断,采集负载的转速并反馈给速度环端,参与速度环的算法运算,但速度环算法执行前要用到位置环控制器的输出量,因此在ADC中断函数中利用SWI_post(&sudusuanfa)函数触发位置环算法函数,函数position_algcal得以运行;而在位置SWI函数中再次调用SWI_post(&sudusuanfa)触发速度环SWI函数完成速度环算法的执行,函数speed_algcal执行。

串口接收中断也属于硬件中断,在串口接收到PC端发送来的命令时,应该立即执行对命令的解析,因此,本系统在串口中断函数中调用SWI_post()来触发命令解析软件中断;在命令解析软件中断函数中,按照规定的通讯协议完成对PC端命令的解析, 若解析到DSP端需要向PC端发送负载转速的命令,则执行senddata函数,向PC端发送负载的转速。

4 实验结论分析

关闭ADC中断,在senddata函数中设置断点,DSP全速运行,打开VB控制界面,电机读取速度按钮,进入CCS开发环境,观察CPU的执行图如图5所示。

图中表明,在DSP端接受到上位机发送来的读取负载速度命令后,执行命令解析函数,命令解析函数分析命令并执行发送速度函数;由于关闭了ADC中断,所以sudusuanfa和weizhisuanfa两个线程不会执行。

从图5可以明显地看出,数据发送程序仅仅占用了2个时钟周期,每个时钟周期为6.67 ns,程序执行时间约13 s,因此,通过DSP/BIOS的程序开发可以很明显地看出代码执行时间。

实验表明,基于RTOS的软件开发设计,系统的实时性大大提高;速度环路采用模糊控制算法而位置环路采用经典PID控制的双环控制策略,使得控制精度得到明显提高。

参考文献

[1]黄智,郭宏,王大彧.无刷直流力矩电动机双闭环控制策略仿真分析.北京航空航天大学学报,2011;37(1):72—75

[2]娄悦.伺服系统模拟加载系统的研究与设计.南京:南京理工大学,2007;37—38

[3]任谦.基于DSP/BIOS的配电自动化中断应用软件的设计.合肥:合肥工业大学,2007:6—9

[4]李华伟.DSP_BIOS多任务环境下比例放大器设计.电子设计,2010;12(2):171—173

[5]李博.基于DSP_BIOS的轨道信号分析系统的研究.北京:北京交通大学,2009:39—40

[6]程翔宇,李迪,冯寿延.基于DSP_BIOS的运动控制系统设计.机床与液压,2007;35(5):157—158

[7]苏奎峰.TMS320X281X DSP原理及C程序开发.北京:北京航空航天大学出版社,2008

[8]赵家祥.DSP系统设计和BIOS编程及应用实例:基于TMS320C67x.北京:机械工业出版社,2008

[9] TMS320 DSP/BIOS v5.41 User’s Guide.Texas Instruments Incor-parated.2009

[10] BIOS(API)Reference Guide.Texas Instruments Incorparat-ed.2006

Bios软件 篇2

第一种:award BIOS,绝大多数主板使用该方式进入BIOS,开机时按下Del键(90%的网友使用这种方法进入BIOS);

第二种:AMI公司开发的BIOS,开机时按下Del键或Esc键;

第三种:Phoenix 专用BIOS多出现于笔记本电脑或品牌台式机电脑,如戴尔DELL,开机时按下F2键;

第四种:Compaq BIOS多出现于惠普的康柏笔记本电脑或台式机电脑,开机时按下F10键;

什么是BIOS:

BIOS是由英文全称“Basic Input Output System”的首字母缩写而成,中文解释为:计算机基础输入输出系统;设计开发人员提前将计算机硬件的配置信息写入并固化在主板的BIOS芯片中,这些信息包括基础的输入输出程序、硬件的基础信息、计算机启动时自检程序的顺序、计算机必要的启动程序等等,BIOS设置为计算机提供了最原始、最底层、最直接的基础信息,它是帮助计算机为用户提供服务的基础。

Bios软件 篇3

作为数控系统核心控制部件的运动控制器, 市场上有基于单片机、基于ARM为主控处理+FPGA/CPLD作为辅控处理、基于DSP为主控处理+FPGA/CPLD作为辅控处理等多种硬件平台的解决方案。在不同的硬件平台上, 软件系统调度方案可以采用μC/OS-Ⅱ, BIOS, RT-Linux, Vx Works等多种实时操作系统内核, 因而衍生出各种软件系统的架构方案[1]。采用TI公司TMS320C6713系列DSP芯片为主控芯片+FPGA作为辅控芯片的硬件平台的解决方案, 其数据吞吐量和高速浮点运算上具有一般单片机不可比拟的优势。而采用TI公司的DSP芯片和CCS的开发平台, 可以使用配套的非开放源代码的BIOS实时内核, 在中小型数控系统应用开发上, 其更加专业, 相比采用ARM硬件平台而使用的开放性源代码的实时操作系统内核, 采用DSP硬件平台与BIOS内核的运动控制器稳定性更好, 能够节约实时操作系统移植和测试时间, 缩短开发周期, 因而其是一种合理有效的解决方案[2]。

为了能够在该平台上进行有效的模块化数控功能组件的开发、维护和移植, 本文提出了一种标准化的软件分层与接口架构方案。该方案可作为一种设计模式, 满足不同用户的基本功能与二次开发需求。

1 系统整体方案

1.1 运动控制器硬件实现平台

本文采用的运动控制器的硬件系统[3]框图如图1所示。其中, TMS320C6713系列DSP具有浮点运算器, 能快速高效地完成工件加工轨迹插补计算。其集成外部扩展扩的EDMA和EMIF总线具有数据吞吐量大的特点。该DSP主频为225 MHz, 对应的指令周期为4.4 ns, 相应的运算速度可达1 800 MIPS/1 350 MFLOPS, 适用于中小型数控系统主控制器的需求[4]。

ACTEL公司的A3P400系类FPGA是一种高密度, 等效40万门器件, 其可配置的I/O可以兼容多种类型的数字电平。另外ACTEL公司提供的Libero集成开发工具, 能提供数字PLL、高速FIFO等多种通用型软核模块, 能够节约开开发时间与成本, 是作为运动控制器外部通信总线接口的一种可靠高效的硬件方案。

1.2 系统软件层次划分

本文软件系统采用三层结构划分[1], 其层次结构如图2所示。

(1) 用户应用接口层。可根据具体的用户需求开发各种功能的数控应用模块, 并将各功能模块作为组件通过接口嵌入到系统软件中来。本文所开发的基础用户组件块及其功能将在下一节详细描述。

(2) BIOS内核层。采用TI公司的CCS3.3提供的BI-OS内核以及其各种内核组件, 可有效缩短内核移植和测试时间。CCS3.3提供图形化界面接口, 如图3所示。其可对内核各个组件进行配置和应用。它的内核通过编译后将在文件链接时植入程序, 生成最后可执行文件。

(3) 硬件驱动层。用于管理运动控制器板卡上与DSP相连的各个硬件设备的驱动, 并为内核与用户应用层提供硬件访问接口。板卡硬件包括:FIFO通信缓冲器、CNC脉冲发生器、UART总线控制器、SERCOS总线控制器等。外部模拟数字硬件设备采用FPGA或专用IC实现。

2 用户应用软件任务划分

用户应用软件组件模块可分为基础组件和扩展组件[5]。基础组件提供数控系统基本的加工、维护、调试、监控等各种接口控制功能。扩展组件根据特定的用户需求可选择性裁剪安装, 一般扩展组件包括软PLC编程接口, SERCOS总线、脉冲、TCP/IP、UART等各种通信协议数据包解析与格式转换等功能。BIOS内核是一款多任务实时内核, 可以在系统多个用户基础任务之间进行调度。本文所描述系统基本用户组件任务划分见图4。

2.1 HMI任务

HMI通信数据包帧格式如表1所示。HIM任务处理流程如图5所示。

(1) 通信数据包格式。通信数据包格式固定, 但功能信息结构格式不固定[6]。不同的信息, 如调试信息、G代码脚本信息的内容等采用不同的信息格式, 这样用户在增加新的功能组件时, 只要自己编写新的信息格式和编码与解析方式, 就能利用原有的通信协议进行开发, 使得系统代码能够移植和重新利用。

(2) 数据包生成器。从已处理完的HMI信息队列中按照不同约定信息格式读取信息, 并按照数据包的格式为其添加帧头、物理地址、校验码等, 生成一组数据帧, 并将该数据帧通过EMIF总线写入FPGA中的UART发送FIFO, 待其转换为对应数字电平发送给上位机。

(3) 数据包解析器。通过EMIF总线从在FPGA中实现的UART总线接收FIFO中读取一个数据帧, 并按照约定的用户应用的解析方式解析成对应的信息, 并将信息加载到HMI接收信息队列, 等待数据处理与交换任务启动进行处理。

2.2 用户数据处理与交换任务

用户数据处理与交换任务流程如图6所示。

本系统提供G代码脚本解释器、调试维护命令壳、系统错误诊断器三个基础组件。用户可根据特定需求植入新的组件, 并编写对应组件接口信息编码与解析方式。

(1) G代码脚本解释器[7]

数控G代码解释的方案很多。部分厂商采用在上位机解析成配置信息码, 并发送给运动控制器的方案。但此方案会增加数据通信量, 使得通信时延增加。本系统采用的方案是:上位机以字符串格式将数控G代码脚本信息打包发送给运动控制器, 运动控制器对字符串进行重新组合, 并通过识别组合码配置数控参数控制块。该方案可以减少通信负担, 减小通信延时, 但是将增大DSP的运算处理量。因为DSP运算速度明显要块于通信传输速率, 所以该方案是一种合理的折中方案。

(2) 调试维护命令壳

该功能用于系统开发阶段和系统维护阶段。系统集成该功能够之后, 根据开发人员提供的维护指令手册, 在上位机输入维护指令, 返回运动控制器相应的关键系统数据结构的运行状态码, 能帮助维护人员快速地判断系统运行中的故障, 并为数控机床每个加工轴提供电机测试接口。

(3) 系统错误诊断器

负责管理和存储数控系统需要监控运行的重要模块信息, 一旦重要模块运行发生故障, 则把错误编码保存在系统错误诊断器中, 并在任务运行时将错误码发送给上位机。

2.3 运动控制任务

运动控制任务是运动控制器最核心的部分, 也是BIOS内核所管理的任务中优先级最高的一个任务。不同厂商的控制器有不同的实现方案。为了能够清晰理解与移植本文所述系统的运动控制程序, 图7给出了运动控制的行为与数据流框图。

根据图7所描述的运动控制行为, 编写的运动控制任务程序的流程图如图8所示。

(1) 加工轨迹计算。加工轨迹计算控制器, 综合数控配置参数与实时的反馈数据, 通过各种数值计算方法, 进行各种数控插补计算, 得到最终的加工数据, 可以通过脉冲编码格式或者SERCOS通信总线, 发送给控制CNC的每个轴的伺服电机驱动器, 控制电机的旋转与进给。

(2) 电机驱动管理。实时地管理监控CNC每个轴的电机驱动器。读取驱动器的工作状态, 将需要上位机进行实时监控的数控实时运行数据写入CNC接收信息队列, 并通过数据交换控制任务, 发送到上位机用于监控。当有电机驱动器运行出现异常时, 可以及时进行保护停止, 并发送运行故障编码。

3 软件方案的验证性测试

在本实验室研发的嵌入式数控系统测试平台如图9所示。其中, HMI板通过JTAG接口与调试主机1相连, 运动控制板通过JTAG接口与调试主机2相连。HMI板与运动控制板通过RS 422总线连接, 并在采用UART协议进行通信[6,8]。

由于电机运行轨迹与效果无法很好通过图片展示, 并且本实验目的主要是验证整个软件系统架构的可行性, 并修补程序BUG。因而建议采用硬件模拟运行加Matlab仿真的验证方法。

采用圆弧插补测试的方法, 在上位机通过G代码脚本格式导入测试指令脚本, 运动控制器读取数据包, 解析出测试脚本信息后, 进行处理和运算, 得出的运算数据保存后, 导入Matlab仿真软件, 生成运行轨迹图, 以便模拟仿真电机的实际运行轨迹。表2为CNC测试脚本的加工轨迹数据。

图10为经过系统运行得到的加工轨迹与原始测试数据的轨迹对照。

图中点线:测试脚本数据拟合曲线;实线:DSP计算的加工数据拟合曲线。从方案验证性测试实验得到的模拟数据拟合图像和原始脚本测试数据对比, 可以验证该软件架构方案和基础用户组件能在实验室的CNC系统平台上稳定可靠地运行, 因而验证了该软件架构方案的可行性。

4 结语

本文基于TI公司的C6713系列DSP+FPGA作为硬件实现方案的运动控制器平台, 提出一种可移植性软件架构方案。通过三层软件结构模型的描述和基础性用户组件与接口的任务划分, 为用户的功能的二次开发与软件代码的维护提供的一个基础性平台。并通过加工脚本测试验证了方案的可行性与稳定性。

摘要:在以德州仪器 (TI) 公司的DSP为主控芯片, FPGA为辅助控制的运动控制器硬件平台上, 采用TI公司的BIOS实时内核, 提出一种运动控制器软件架构方案。该方案可以针对不同用户需求进行功能组件二次开发和移植, 软件源代码采用模块化设计, 具有标准化函数接口, 可维护性良好。经过实验测试, 能满足开放性、实时性、可移植性的要求。

关键词:数控系统,软件架构,数字信号处理器,BIOS

参考文献

[1]王涛, 王太勇, 许爱芬, 等.嵌入式实时操作系统在数控系统设计中的应用[J].计算机工程, 2008, 34 (4) :250-268.

[2]孙禾凤.基于DSP/BIOS的运动控制器软件开发[D].南京:南京航空航天大学, 2008.

[3]吴红军, 皮佑国.基于DSP和FPGA的运动控制器的设计与实现[J].组合机床与自动化加工技术, 2011 (2) :75-82.

[4]Texas Instruments Incorporated.TMS320C6713B floating-point digital signal processor SPRS294B[R].USA:Texas Instruments Incorporated, 2006.

[5]毛军红, 李黎川, 吴序堂.机床数控软件化结构体系[J].机械工程学报, 2006, 36 (7) :48-51.

[6]蒋明柯, 皮佑国.数控系统中RS 485串行通信协议的设计[J].组合机床与自动化加工技术, 2013 (5) :23-26.

[7][美]凯赛达.计算机数控技术应用:加工中心和切削中心[M].北京:清华大学出版社, 2006.

[8]范德和, 皮佑国.基于DSP和FPGA的运动控制器高速串行通信设计[J].组合机床与自动化加工技术, 2011 (9) :58-62.

[9]任伟, 张彦军, 李京蔓, 等.基于FPGA的数字量变换器测试系统设计[J].计算机测量与控制, 2013, 21 (1) :71-77.

Bios总结 篇4

2.选择硬盘启动优先级:Hard Disk Boot Priority,使用小键盘上的加减号“+、-”来选择将U盘(或者其他启动盘)选择在最上面。然后,按ESC键退出。

3.再选择第一启动设备(First Boot Device),选择“Hard Disk”或者选择“USB-ZIP”、“USB-HDD”之类的选项。

Bios软件 篇5

BIOS (Basic Input Output System, 基本输入输出系统) 是计算机系统的一个重要组成部分, 它是固化在计算机主板上ROM芯片里的软件系统。BIOS在计算机系统中起着非常重要的作用, 它是被固化到计算机中的一组程序, 为计算机提供最基本的、最直接的硬件控制。计算机开机上电首先执行BIOS指令, 完成基础硬件和外围设备的检测及初始化, 装载为系统运行时提供的服务, 最后引导操作系统。

当今, 计算机和网络发展迅猛, 各种高新技术层出不穷, 随之而生的安全防护问题成为社会极为关心的问题。针对不同的安全威胁, 目前存在多种安全技术和相关安全产品, 如个人防火墙、防毒杀毒技术、安全应用程序、安全操作系统等。

这些传统的安全解决方案都采用外围设防的思想, 在网络边界上进行安全防范, 没有考虑内网的安全性, 忽略了计算机系统本身的安全防范。BIOS作为计算机的底层核心固件, 对计算机系统安全尤为重要。随着BIOS芯片容积的扩大和BIOS功能的扩展, BIOS在信息安全方面得到越来越多的重视。其存在的安全隐患也逐渐增多。在BIOS中提供的安全功能, 或其存在的安全隐患, 相对于存在于硬盘上, 运行于操作系统中的其他安全软件、病毒、安全漏洞来讲, 具有不易清除, 不易监控和隐蔽性强的优势。因而BIOS常常是被病毒、黑客攻击的对象。通过执行代码来修改BIOS, 从而造成BIOS或操作系统被破坏。

本文主要针对市场上主流BIOS产品, 通过软硬件手段获取主板上FLASH芯片中的BIOS映像。通过对获取的样本进行分析解剖, 研究了BIOS系统安全威胁, 描述和揭示BIOS安全威胁的来源、种类及危害并通过实验进行了验证。

1 BIOS安全威胁模型

研究组经过对BIOS安全问题的跟踪研究和分类归纳, 研究了计算机BIOS安全威胁的来源和种类。通过软硬件手段获取主板上FLASH芯片中的BIOS映像, 并对获取的样本进行分析解剖, 对计算机BIOS安全威胁模型进行了分析, 该模型描述和揭示BIOS安全威胁的来源、种类及危害, 是BIOS安全风险分析和安全检测的理论基础。BIOS安全威胁模型如图1所示。

1.1 BIOS安全威胁来源

BIOS安全威胁来源主要有两种。第一种安全威胁来自BIOS自身。由于BIOS自身扩充功能设计障碍可能导致本地计算机硬件、磁盘数据或系统软件造成损害, 但不会被远程恶意者所利用, 如图1中的 (1) 。第二种安全威胁来自BIOS外部, 外部恶意者利用BIOS配置漏洞和设计缺陷, 通过网络实施对本地计算机的侵入或破坏, 如图1中的 (2, 3, 4) 。

1.2 BIOS安全威胁种类及危害

1.2.1 BIOS功能障碍

主板厂商从BIOS厂商处获取授权BIOS源代码后, 会根据主板采用的芯片组情况, 对BIOS源代码进行修改, 定制满足自身主板要求的BIOS。主板厂商为了增强自身主板的特点, 也会在BIOS中集成一些自身开发或其他第三方开发的BIOS功能模块。这些功能模块不属于BIOS标准功能, 在实际使用中由于硬件或软件兼容性问题, 可能对计算机造成一定的功能障碍或一定程度的破坏。如集成在BIOS中的防引导扇区病毒模块会造成某些分区软件的失败, 造成LINUX操作系统装载软件失败;而集成的磁盘恢复精灵模块在某些情况下会造成硬盘恢复失败和数据丢失。这种类型的BIOS安全风险是由内及外的。该类威胁如图1中 (1) 所示。

1.2.2 BIOS配置漏洞

利用本地计算机BIOS配置漏洞, 远程计算机通过网络使用软件可以对本地计算机的某些BIOS选项设置, 进而配合使用工具软件完成对本地计算机的远程存取和控制。由于BIOS的这些功能配置漏洞深入硬件底层, 远程攻击者甚至可以在本地计算机关机的情况下, 在特殊时段, 通过工具软件开启本地计算机, 不知不觉完成对本地计算机的存储访问。但这种威胁不会危及BIOS自身的芯片和代码安全。该类威胁如图1中 (2) 所示。

1.2.3 BIOS物理攻击

不使用特殊烧录设备的情况下, 使用软件手段提升主机板写入电压, 可以对存储BIOS的FLASH芯片进行读写。远程计算机或网络向本地计算机植入病毒, 利用BIOS的FLASH芯片这一特点, 可以直接改写或擦除FLASH芯片存储的内容导致计算机不能正常启动, 甚至可以造成主机板部分电路或芯片的物理损坏。CIH病毒是这种物理攻击的典型案例。这种物理攻击的实现, 在W I N D O W S系列操作系统下都可以通过采用设备驱动程序的编写方法, 进入RING0级特权模式实施。这种安全威胁是由外及内的。该类威胁如图1中的 (3) 所示。

1.2.4 BIOS木马

BIOS木马是指隐藏在BIOS芯片中的木马程序。主机板提供的BIOS芯片一般为256KB、512KB或1024KB, 而BIOS二进制代码并没有完全占用这些空间。

据我们的研究统计结果表明, BIOS二进制代码一般只占用FLASH芯片60~70%的空间, 往往FLASH芯片会剩余几十KB到几百KB的空间。恶意攻击者将木马包装成合法的BIOS功能模块, 利用WINDOWS或LINUX下的BIOS读写工具软件, 向BIOS芯片中植入木马。植入BIOS的木马能够反向释放到操作系统中运行。BIOS木马能完成普通木马具备的所有功能, 同时又具备普通木马所不能比拟的优势, 如抗硬盘重分区、抗硬盘格式化、抗操作系统重装, 甚至更换硬盘都不会对其产生影响。而我们在实验中也成功地实现了这一技术。该类威胁如图1中的 (4) 所示。

2 实验分析研究

我们在建立BIOS安全威胁模型的过程中, 我们使用具有AWARD BIOS的联想台式机做了局域网远程开机与BIOS木马两个实验来说明BIOS安全威胁模型。

2.1 局域网远程开机实验

目前, 市面上销售的主板基本上都具有网络唤醒功能, 支持局域网远程开机。当知道被唤醒的计算机MAC地址后, 通过另外一台计算机执行相应的软件, 向网络上发出含有该地址的特殊数据包。此时, 被唤醒的计算机虽然处于关机状态, 但是其内部网卡控制芯片通过专用连线所送来的电流, 仍然可以接收和处理网络上的数据包。因此控制芯片通过检查数据包内的MAC地址, 就可确认自己就是该数据包的收件者, 然后通过专用连线发出开机信号, 通知主板开机启动。

我们使用覃茂藩编写的软件网络唤醒V041对局域网内的计算机进行了远程开机的实验。该软件扫描获取整个局域网内已联机的所有计算机 (开着机的) 的信息, 包括主机名、IP地址、MAC地址、工作组、共享资源等, 如图2所示。

关闭局域网内的一台计算机, 注意需要连接好电源与网线, 使用该软件对其远程开机。这个实验很容易操作, 也就是说黑客可以很容易地扫描到你的MAC地址, 在你关机后远程开启你的计算机进而攻击你的计算机, 可见如果开启这个功能很危险。

2.2 BIOS木马实验

我们使用的BIOS木马是标准的AWARD ISA模块, 可以直接插入到AWARD BIOS映像文件中, 具体操作步骤如下:

(1) 利用Award_Win Flash读取BIOS内容, 并另存为awdbios.bin, 为了以防万一, 将此文件备份。注意文件名长度需在8个字符以内, 否则进行第2步的操作时可能会报错。

(2) 利用CBROM解包上一步得到的BIOS文件包awdbios.bin, 在命令行方式下进入你的cbrom所在目录, 使用命令“cbrom.exeawdbios.bin/d”命令得到图3的结果。我们可以清楚地看到BIOS内的各个功能模块的信息, 以及所占的存储空间, 如图3所示。

(3) 将标准ISA模块木马MODULE.ROM插入到BIOS中, 利用如下命令进行:“cbrom awdbios.bin/isa MODULE.ROM”, 得到的文件即为带木马的BIOS文件。输入“cbromnewbios.bin/d”查看新得到的BIOS模块信息, 如图4所示。

比较图3与图4, 我们可以清楚地看到植入的木马模块。当再次计算机启动时, BIOS芯片中的程序自动释放木马到系统中运行。运行木马的计算机, 将会被运行该木马控制台的远程计算机所控制, 导致计算机存储设备中的内容泄密, 或被其他远程计算机控制或破坏。

3 结束语

本文所介绍的BIOS安全威胁模型描述和揭示了BIOS安全威胁的来源、种类及危害, 是BIOS安全风险分析和安全检测的理论基础。基于BIOS安全威胁模型, 可以进一步探讨和研究可行的BIOS安全检查的原理和技术方法。

参考文献

[1]陈文钦.BIOS研发技术剖析.北京:清华大学出版社.2001.

[2]http://developer.intel.com/technology/efi/.

[3]徐宁, 徐云蜂.基于USBKEY的BIOS和系统安全增强技术.计算机工程与科学.2006.

计算机BIOS安全稳定性分析 篇6

计算机BIOS( Basic Inpu Uout Put system ) 全称 “计算机基本输入输出系统”,是固化在计算机主板ROM芯片中的一组程序。BIOS是链接计算机硬件与软件之间的接口,为计算机提供最底层、最直接的硬件控制。其主要功能包括上电自检及初始化、硬件中断处理、程序服务处理等,在计算机系统中起着非常重要的作用。

1影响BIOS安全稳定的要素

1. 1 BIOS载体与属性

系统BIOS通常由原始设备制造商( OEM) 和独立BIOS供应商开发,并利用计算机硬件分发到最终用户。制造商经常通过更新系统固件来修复错误、为漏洞打补丁和支持新的硬件。系统BIOS通常存储在电可擦除可编程只读存储器( EEPROM) 或其他形式的闪存上,并可由最终用户修改。那么固件和存储器属性是其安全稳定的重要要素。

对于一个给定的计算机系统,除了主板之外, BIOS还可能存在于硬盘驱动器控制器、显卡、网卡上及其他附加卡上。这类固件通常采用扩展ROM的形式,在引导过程中由系统固件装载和执行。

1. 2用户对BIOS更新

目前,大多数系统和主板制造商通常为用户提供能够更新系统BIOS的实用程序。也就是说,用户可以利用程序工具更新系统BIOS,系统管理员还可以远程更新系统BIOS。为了从被损坏或发生故障的系统BIOS中恢复,许多计算机系统允许用户在启动过程中,用已知良好的版本和配置取代正在使用的系统BIOS。另外回滚( 系统BIOS的一个特殊更新过程,即将安装的固件回滚到一个以前安装的版本,防止攻击者用具有已知漏洞的固件刷新闪存) 与自动恢复( 从主系统BIOS的一个单独存储位置的备份固件镜像中恢复) 也给予用户更新BIOS的可能。还有某些服务器可以使用安全本地更新机制更新系统BIOS。这些都成为影响BIOS安全稳定的重要要素。

2破坏BIOS安全稳定的方式

系统BIOS的安全稳定性可能面临各种不同的攻击威胁。系统BIOS安全稳定性遇到的第一个威胁来自系统通过供应链从制造商到用户的过程。在系统BIOS安全到达用户的情况下,在系统的整个生命周期中,破坏系统BIOS安全稳定性的方式有以下几种。

2. 1用户安装恶意系统BIOS

通常用户更新系统BIOS的主要方法是利用BIOS更新工具进行BIOS更新操作。在用户亲自访问计算机系统的情况下,通常没有什么办法防止用户安装未经批准的BIOS映像,即若用户恶意安装不合格系统,将破坏BIOS的安全性。

2. 2恶意软件修改系统BIOS

恶意软件利用弱BIOS安全控制或系统BIOS本身的漏洞对系统BIOS进行刷新或修改。通常目的恶意软件一般不包含这样的功能,但是一个针对企业的攻击可能直接把目标指向企业的系统BIOS。 恶意的系统BIOS可能通过网络或利用介质传递到系统。

2. 3系统管理工具对系统B1OS进行攻击

基于网络的系统管理工具可以被攻击者用来进行企业范围内系统BIOS的攻击。例如,假设一台企业维护的,用于企业部署,执行系统BIOS更新功能的服务器受到攻击,被攻破的服务器可能将恶意的系统BIOS传播到整个企业的计算机系统。

2. 4将系统BIOS回滚到脆弱的版本

这是一种特别隐秘的攻击,因为此时的系统BIOS虽然是真实的( 即来自于制造商的) ,但它存在漏洞,是很脆弱的,很容易受到攻击。

2. 5利用更新机制存在的漏洞

有的服务器具有多个BIOS更新机制,每个机制都可能存在漏洞,更新机制之间的交互还可能带来额外的安全漏洞。

2. 6 BIOS备份被恶意修改

如果安全保护不充分,攻击者很容易对备份在服务器上的B1OS映像实施改写攻击。对BIOS备份修改后,攻击者可以采用相应的方式使服务器重新启动被感染的BIOS备份映像。

3规避BIOS安全风险方法

BIOS安全是安全系统的一个重要组成部分。 系统BIOS风险缓解的主要工作是防止攻击者对系统BIOS进行未经授权的修改,保证其完整性。客户端系统的安全风险缓解措施,其目的是减轻针对系统BIOS的高级持续性攻击的风险。另外,由于服务器体系结构的复杂性和服务器具有的BIOS多更新路径的特点,还应对BIOS映像进行授权和认证,确保BIOS映像的完整性和来源的正确性。

3. 1建立安全的BIOS更新机制

通过保护BIOS更新机制的安全,确保在BIOS被配置后能够保持其完整性。安全的BIOS更新机制应包括两个特点: 一是验证BIOS更新真实性和完整性的过程。二是确保不能从安全更新过程之外修改BIOS的机制。实际中通常采用以下几种方法。

3. 1. 1使用经认证的BIOS更新机制更新BIOS

BIOS更新机制采用数字签名确保BIOS更新映像的真实性。使用经认证的BIOS更新机制更新BIOS,应有一个RTU,其中包含一个签名验证算法和密钥存储,密钥存储应包括验证BIOS更新映像签名所需的公钥或合法的密钥加密哈希值。密钥存储和签名验证算法应以保护方式存储在计算机系统上,并保证只能通过经认证的更新机制或安全本地更新机制进行修改。在RTU内存储空间有限的情况下,BIOS更新映像的验证可以分两个阶段建立: 验证所提供公钥的加密哈希值阶段和利用所提供的公钥验证BIOS更新的签名阶段。

经认证的更新机制应确保BIOS更新映像已经过数字签名,并且可以在更新BIOS前使用RTU中的密钥验证数字签名。恢复机制也应使用经认证的更新机制,或满足安全本地更新的要求。RTU应能防止未授权将BIOS更新到一个较早的真实版本。 例如,通过验证确保更新BIOS映像的版本号高于当前使用BIOS映像的版本号。

3. 1. 2安全本地更新

BIOS可以选择使用安全本地更新机制代替经认证的更新机制对系统BIOS进行更新。安全本地更新机制,应仅用于加载第一个BIOS映像或从不能使用经认证的更新机制对损坏的系统BIOS进行修复的情况。安全本地更新机制应通过要求管理员本人亲自参与服务器更新操作,确保BIOS更新映像的真实性和完整性。进行安全本地更新,可以通过要求在允许更新系统B1OS前输入管理员口令或解锁物理锁( 如,主板上的跳线) 实现进一步的安全保护。

3. 1. 3固件完整性保护

为了防止执行虚假或恶意的BIOS代码,在启动过程中,应保持系统BIOS验证和系统BIOS执行之间系统BIOS的完整性。

为了防止在经认证的BIOS更新过程之外意外或恶意修改系统BIOS,应采用适当的机制保护系统BIOS,确保不能从经认证的BIOS更新过程之外修改BIOS。如果可以在经认证的BIOS更新机制之外修改系统BIOS( 如,无法锁定闪存) ,则应在每个更新前使用RTU验证组件认证BIOS映像的完整性。 如果认证失败,RTU应将其自动恢复到受保护的真实BIOS。应保护每个RTU避免来自经认证的更新机制外部的修改。确保RTU完整性的保护机制应在RTU外部的代码执行前引入。RTU完整性保护应通过硬件机制强制执行,并只能通过合法的机制( 如,系统复位) 停止。

3. 1. 4防止旁路

除了通过用户亲自参与的安全本地更新机制外,经认证的BIOS更新机制应是对系统BIOS进行修改的唯一机制。系统及相应的系统组件和固件的设计应确保,除了用户亲自参与的安全本地更新机制外,不存在绕过经认证的更新机制安装和执行未经认证的BIOS代码的方法。任何能够绕过经认证的更新机制的方法都可能形成漏洞,允许恶意软件修改系统BIOS或用非法BIOS映像覆盖系统闪存。 经认证的更新机制应是对RTU进行修改的唯一机制。除了用户亲自参与的安全本地更新机制外,不应存在绕过经认证的更新机制修改RTU的方法。

为了获得对性能和管理的改进,计算机平台实现的功能可以让系统部件能够直接访问RTU或系统BIOS,具有对BIOS闪存的读访问权限,但应防止系统组件直接修改系统BIOS。

3. 2确保服务处理器安全

服务器与客户机之间的主要区别是在服务器系统中包括一个服务处理器( SP) 。SP在管理和监视服务器的过程中起着关键的作用,并承担者更新系统BIOS的角色。

SP作为可信根: 服务器中的SP可能具有直接更新B10S闪存以及本身的闪存或其它存储介质的能力,某些或全部SP环境可用作系统BIOS的RTU。为了保持服务器固件的完整性,必须保护SP的执行环境,防止恶意代码更新BIOS或SP闪存。 根据BIOS安全原则,SP器应满足下列要求:

( 1) 通过经认证的更新机制更新SP代码、加密密钥和存储在SP闪存中的静态数据。

( 2) 控制SP环境,保证只有经过认证的代码可以在SP上执行。

( 3) 对与SP交互的用户进行授权。

SP不作为可信根: 一些具有SP的服务器可能不把SP用作RTU进行BIOS更新。为了确保SP环境无法绕过BIOS保护,系统中的SP不应直接对BIOS闪存进行写访问。此外,SP不应在主机操作系统控制范围之外直接并且无限制地访问服务器上的系统内存,防止SP干扰合法的更新过程。

摘要:BIOS是计算机开机后首先执行的一组程序,在计算机中有非常重要的作用。为了保障它在计算机系统中的安全稳定性,分析了BIOS的安全稳定性影响因素,这包括载体属性和用户层面。并主要从用户更新和系统修改等方面对破坏BIOS安全稳定的方式进行了说明。最后提出规避BIOS风险的措施和建议。

Bios软件 篇7

1 WINCE启动方法

WINCE并不是一个通用的安装版操作系统,在各种嵌入式硬件设备中,一款CE系统通常只会针对某一种硬件平台生成。Boot Loader是定制Windows CE操作系统过程中一个重要的开发环节。在整个系统正常启动后,Boot Loader通过不同的方式加载CE的内核文件nk.bin。当Boot Loader把nk.bin解压到RAM后就把CPU控制权交给CE内核。在X86平台下,有三种Boot Loader:x86 ROM Boot Loader,x86 BIOS Boot Loader和MSDOS+Loadcepc。其中,x86 ROM Boot Loader因为要代替BIOS完成平台的初始化工作,需要CE开发者读懂它的源码并根据不同的平台修改,难度比较大。对于MSDOS+Loadcepc,首先启动到MSDOS,再执行loadcepe.exe,让loadcepc加载nk.bin到内存,再把CPU控制权交给CE内核程序。这种方法需要DOS系统的支持。

1.1 BIOS Boot Loader启动过程

这里着重介绍BIOS Boot Loader。它的引导顺序是:系统上电后BIOS执行完硬件初始化和配置,然后检查引导设备的启动顺序。如果引导设备是硬盘、CF卡、DOC (Disk-On-Chip)一类的存储设备,则就加载这些存储器上的主引导扇区(Master Boot Sector)中的实模式代码到内存,并执行这些代码。这里提到的代码被称为主引导记录(MBR)。MBR首先在分区表(同样位于主引导扇区)中寻找活动分区,如果存在活动分区,则加载位于这个活动分区的第一个扇区上的代码到内存,然后执行这些代码。这里提到的活动分区的第一个扇区被称为引导扇区(Boot Sector)。引导扇区上的代码的功能是找到并且加载BIOS Boot Loader,BIOS Boot Loader再加载nk.bin。使用BIOS Boot Loader方式,需要制作启动盘,Bsect.img和BLDR,BIN分别为引导扇区文件和WINCE的加载文件。执行“mkdisk C:”批处理命令将这两个文件写到磁盘上。mkdisk会设置Boot Loader的隐藏属性,这样在列出根目录下所有文件时不会显示Boot Loader的文件。这种方法的优点是不需要DOS系统就可以直接启动系统,这是一种常用的启动WINCE的方法;缺点是需要通过专门的工具制作启动盘,操作相对复杂,如果要更换不同的存储设备,则都要进行这一系列的操作才能完成。具体引导过程如图1所示。

1.2 BIOS Boot Loader启动代码分析

通过上面的分析,BIOS Boot Loader的工作的过程已经清楚,下面分析启动过程中需要的文件。

首先分析引导扇区(BootSector)文件Bsect.img。其主要包括一个引导程序和一个称作BPB(Bios Parameter Block)的本分区参数记录表。BPB表记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元的大小等重要参数。引导程序是Bsect.img的关键部分,通过“mkdisk C:”替换原有引导扇区的主要目的是改变引导程序。

下面是Bsect.img的BPB和引导程序的部分代码,包括参数的传递以及控制权移交给BLDR,这也是加载NK.BIN的最后一步。

2 WINCE启动新方法

本文中介绍的方法是在BIOS Boot Loader基础上改进而来,通过修改BIOS,为使用X86平台的WINCE用户提供方便。此方法不需要使用“mkdisk”制作启动盘,只需要把磁盘(如硬盘、CF卡等)格式化为FAT16,把NK.BIN文件存放到磁盘活动分区的根目录即可。

2.1 实现步骤

下面介绍这种方法的实现。BIOS的修改主要包括以下三个部分:

(1)把WINCE的加载程序BLDR.BIN存放到BIOS中。首先分配一个ID号,然后作为一个模块添加到BIOS中,由于存放BIOS的Flash空间有限,所以需要对其进行压缩。在BIOS编译完成以后,通过BIOS工具可以看到这一模块,并且和其他模块一样可以更新,也就是说可以升级BLDR.BIN。

(2)在BIOS启动选项里增加WINCE启动项。启动过程中判断用户的设置,如果从WINCE启动,则把BLDR模块解压后存放到某个内存空间中等待调用。

(3)修改BIOS INT19调用的过程。在INT19的服务程序中,当BIOS把磁盘的MBR读入到内存0000:7C00之后取得控制权,把前面解压后的BLDR转移到内存0000:1000,通过读取MBR的分区表信息(位置如图2所示)查找当前磁盘活动分区。第一个字节为80H的是活动分区,然后读取活动分区引导扇区的BPB表,参照Bsect.img中的方法把BLDR所需的四个参数准备好,最后移交控制权到BLDR。

2.2 启动过程及结果

经过这样修改以后,WINCE的启动过程如图3所示。由此可以看出,启动过程主要在BIOS中完成。经过不同的平台测试可知,这种方法与原有BIOS Boot Loader的启动速度差不多。表1是两种方法启动速度的对比,记录时间为系统上电到BLDR开始加载NK.BIN。

3 实际应用

目前研祥的多款主板的BIOS都支持此种功能,在BIOS的设置中有一个选项来选择是否从WINCE启动。在使用其他系统时选择“disable”,便可以从其他系统正常启动;使用WINCE时选择“enable”,便从WINCE启动。把编译好的nk.bin文件拷贝到磁盘的活动分区根目录,系统上电后可以直接启动到WINCE,不需要制作专用的启动盘,为用户使用WINCE系统带来了方便。此种启动方法同样适合于其他的嵌入式操作系统,如Linux等。

摘要:通过分析原有 WINCE 启动方法,提出一种 BIOS 直接启动 WINCE 的方法,使用户使用WINCE 更加简单。

关键词:BIOS,Boot Loader,Wince,启动

参考文献

[1] 张冬泉.Windows CE 实用开发技术.北京:电子工业出版社,2006.

[2] 陈文钦.BIOS 研发技术剖析.北京:清华大学出版社,2001.

上一篇:智慧城市系统建设方案下一篇:构建小学美术高效课堂