软硬件开发流程及规范.docx
《软硬件开发流程及规范.docx》由会员分享,可在线阅读,更多相关《软硬件开发流程及规范.docx(18页珍藏版)》请在冰豆网上搜索。
软硬件开发流程及规范
编号:
受控状态:
软硬件开发流程及规X
日期:
日期:
日期:
修订记录
日期
修订状态
修改内容
修改人
审核人
批准人
1目录
2概述
2.1硬件开发过程简介
2.1.1硬件开发的根本过程
硬件开发的根本过程:
1.明确硬件总体需求情况,如CPU处理能力、存储容量及速度,I/O端口的分配、接口要求、电平要求、特殊电路〔厚膜等〕要求等等。
2.根据需求分析制定硬件总体方案,寻求关键器件及电路的技术资料、技术途径、技术支持,要比拟充分地考虑技术可能性、可靠性以及本钱控制,并对开发调试工具提出明确的要求。
关键器件索取样品。
3.总体方案确定后,作硬件和单板软件的详细设计,包括绘制硬件原理图、单板软件功能框图及编码、PCB布线,同时完成发物料清单。
4.领回PCB板及物料后由焊工焊好1~2块单板,作单板调试,对原理设计中的各功能进展调测,必要时修改原理图并作记录。
5.软硬件系统联调,一般的单板需硬件人员、单板软件人员的配合,特殊的单板〔如主机板〕需比拟大型软件的开发,参与联调的软件人员更多。
一般地,经过单板调试后在原理及PCB布线方面有些调整,需第二次投板。
6.内部验收及转中试,硬件工程完成开发过程。
2.1.2硬件开发的规X化
硬件开发的根本过程应遵循硬件开发流程规X文件执行,不仅如此,硬件开发涉及到技术的应用、器件的选择等,必须遵照相应的规X化措施才能到达质量保障的要求。
这主要表现在,技术的采用要经过总体组的评审,器件和厂家的选择要参照物料认证部的相关文件,开发过程完成相应的规定文档,另外,常用的硬件电路〔如ID.WDT〕要采用通用的标准设计。
2.2硬件工程师职责与根本技能
2.2.1硬件工程师职责
一个技术领先、运行可靠的硬件平台是公司产品质量的根底,硬件工程师职责神圣,责任重大。
1、硬件工程师应勇于尝试新的先进技术,在产品硬件设计中大胆创新。
2、坚持采用开放式的硬件架构,把握硬件技术的主流和未来开展,在设计中考虑将来的技术升级。
3、充分利用公司现有的成熟技术,保持产品技术上的继承性。
4、在设计中考虑本钱,控制产品的性能价格比达至最优。
5、技术开放,资源共享,促进公司整体的技术提升。
2.2.2硬件工程师根本素质与技术
硬件工程师应掌握如下根本技能:
1、由需求分析至总体方案、详细设计的设计创造能力;
2、熟练运用设计工具,设计原理图、EPLD、FPGA调试程序的能力;
3、运用仿真设备、示波器、逻辑分析仪调测硬件的能力;
4、掌握常用的标准电路的设计能力,如ID电路、WDT电路、π型滤波电路、高速信号传输线的匹配电路等;
5、故障定位、解决问题的能力;
6、文档的写作技能;
7、接触供给商、保守公司XX的技能。
3软硬件开发规X化管理
3.1硬件开发流程
3.1.1硬件开发流程文件介绍
硬件开发的规X化是一项重要内容。
硬件开发规X化管理是在公司的?
硬件开发流程?
及相关的?
硬件开发文档规X?
、?
PCB投板流程?
等文件中规划的。
硬件开发流程是指导硬件工程师按规X化方式进展开发的准那么,规X了硬件开发的全过程。
硬件开发流程制定的目的是规X硬件开发过程控制,硬件开发质量,确保硬件开发能按预定目的完成。
硬件开发流程不但规X化了硬件开发的全过程,同时也从总体上,规定了硬件开发所应完成的任务。
做为一名硬件工程师深刻领会硬件开发流程中各项内容,在日常工作中自觉按流程办事,是非常重要的。
所有硬件工程师应把学流程、按流程办事、开展完善流程、监视流程的执行作为自己的一项职责,为公司的管理规X化做出的奉献。
3.1.2硬件开发流程详解
硬件开发流程对硬件开发的全过程进展了科学分解,规X了硬件开发的五大任务。
•硬件需求分析
•硬件系统设计
•硬件开发及过程控制
•系统联调
•文档归档及验收申请。
1.硬件需求分析
工程组接到任务后,首先要做的硬件开发工作就是要进展硬件需求分析,撰写硬件需求规格说明书。
硬件需求分析在整个产品开发过程中是非常重要的一环,硬件工程师更应对这一项内容加以重视。
一项产品的性能往往是由软件和硬件共同完成的,哪些是由硬件完成,哪些是由软件完成,工程组必须在需求时加以细致考虑。
硬件需求分析主要有以下内容:
系统工程组网及使用说明
根本配置及其互连方法
运行环境
硬件系统的根本功能和主要性能指标
功能模块的划分
关键技术的攻关
外购硬件的名称型号、生产单位、主要技术指标
主要仪器设备
可靠性、稳定性、电磁兼容讨论
电源、工艺构造设计
硬件测试方案
2.硬件总体设计
硬件总体设计的主要任务就是从总体上进一步划分各单板的功能以及硬件的总体构造描述,规定各单板间的接口及有关的技术指标。
硬件总体设计主要有以下内容:
系统功能及功能指标
系统总体构造图及功能划分
单板命名
系统逻辑框图
组成系统各功能块的逻辑框图,电路构造图及单板组成
单板逻辑框图和电路构造图
关键技术讨论
关键器件
从上可见,硬件开发总体方案把整个系统进一步具体化。
硬件开发总体设计是最重要的环节之一。
总体设计不好,可能出现致命的问题,造成的损失有许多是无法挽回的。
3.硬件开发及过程控制。
一个好的产品,特别是大型复杂产品,总体方案进展反复论证是不可缺少的。
只有经过屡次反复论证的方案,才可能成为好方案。
总体审查包括两局部,一是对有关文档的格式,内容的科学性,描述的准确性以及详简情况进展审查。
再就是对总体设计中技术合理性、可行性等进展审查。
如果评审不能通过,工程组必须对自己的方案重新进展修订。
硬件总体设计方案通过后,即可着手关键器件的申购,主要工作由工程组来完成。
关键器件落实后,即要进展构造电源设计、单板总体设计。
单板总体设计需要工程与CAD配合完成。
单板总体设计过程中,对电路板的布局、走线的速率、线间干扰以及EMI等的设计应与CAD室合作。
CAD室可利用相应分析软件进展辅助分析。
单板总体设计完成后,出单板总体设计方案书。
总体设计主要包括以下内容:
单板在整机中的的位置:
单板功能描述
单板尺寸
单板逻辑图及各功能模块说明
单板软件功能描述
单板软件功能模块划分
接口定义及与相关板的关系
重要性能指标、功耗及采用标准
开发用仪器仪表等
每个单板都要有总体设计方案,且要经过总体办和管理办的联系评审。
否那么要重新设计。
只有单板总体方案通过后,才可以进展单板详细设计。
单板详细设计包括两大局部:
单板软件详细设计
单板硬件详细设计
单板软、硬件详细设计,要遵守公司的硬件设计技术规X,必须对物料选用,以及本钱控制等上加以注意。
不同的单板,硬件详细设计差异很大。
但应包括以下局部:
单板整体功能的准确描述和模块的精心划分。
接口的详细设计。
关键元器件的功能描述及评审,元器件的选择。
符合规X的原理图及PCB图。
对PCB板的测试及调试方案。
单板详细设计要撰写单板详细设计报告。
详细设计报告必须经过审核通过。
单板软件的详细设计报告由管理办组织审查,而单板硬件的详细设计报告,那么要由总体办、管理办、CAD室联合进展审查,如果审查通过,方可进展PCB板设计,如果通不过,那么返回硬件需求分析处,重新进展整个过程。
这样做的目的在于让工程组重新审查一下,某个单板详细设计通不过,是否会引起工程整体设计的改动。
如单板详细设计报告通过,工程组一边要与方案处配合准备单板物料申购,一方面进展PCB板设计。
PCB板设计需要工程组与CAD室配合进展,PCB原理图是由工程组完成的,而PCB画板和投板的管理工作都由CAD室完成。
PCB投板有专门的PCB样板流程。
PCB板设计完成后,就要进展单板硬件过程调试,调试过程中要注意多记录、总结,勤于整理,写出单板硬件过程调试文档。
当单板调试完成,工程组要把单板放到相应环境进展单板硬件测试,并撰写硬件测试文档。
如果PCB测试不通过,要重新投板,那么要由工程组、管理办、总体办、CAD室联合决定。
4.系统联调
在构造电源,单板软硬件都已完成开发后,就可以进展联调,撰写系统联调报告。
联调是整机性能提高,稳定的重要环节,认真周到的联调可以发现各单板以及整体设计的缺乏,也是验证设计目的是否到达的唯一方法。
因此,联调必须预先撰写联调方案,并对整个联调过程进展详细记录。
只有对各种可能的环节验证到才能保证机器走向市场后工作的可靠性和稳定性。
联调后,必须经总体办和管理办,对联调结果进展评审,看是不是符合设计要求。
如果不符合设计要求将要返回去进展优化设计。
如果联调通过,工程要进展文件归档,把应该归档的文件准备好,经总体办、管理办评审,如果通过,才可进展验收。
总之,硬件开发流程是硬件工程师规X日常开发工作的重要依据,全体硬件工程师必须认真学习。
3.2硬件开发文档规X
3.2.1硬件开发文档规X文件介绍
为规X硬件开发过程中文档的编写,明确文档的格式和内容,规定硬件开发过程中所需文档清单,与?
硬件开发流程?
对应制定了?
硬件开发文档编制规X?
。
开发人员在写文档时往往会漏掉一些该写的内容,编制规X在开发人员写文档时也有一定的提示作用。
规X中共列出以下文档的规X:
•硬件需求说明书
•硬件总体设计报告
•单板总体设计方案
•单板硬件详细设计
•单板软件详细设计
•单板硬件过程调试文档
•单板软件过程调试文档
•单板系统联调报告
•单板硬件测试文档
•硬件信息库
这些规X的具体内容可在HUAWEI效劳器中资料库中找到,对应每个文档规X都有相应的模板可供开发人员在写文档时“填空〞使用。
3.2.2硬件开发文档编制规X详解
1、硬件需求说明书
硬件需求说明书是描写硬件开发目标,根本功能、根本配置,主要性能指标、运行环境,约束条件以及开发经费和进度等要求,它的要求依据是产品规格说明书和系统需求说明书。
它是硬件总体设计和制订硬件开发方案的依据,
具体编写的内容有:
硬件整体系统的根本功能和主要性能指标、硬件分系统的根本功能和主要性能指标以及功能模块的划分等。
2、硬件总体设计报告
硬件总体设计报告是根据需求说明书的要求进展总体设计后出的报告,它是硬件详细设计的依据。
编写硬件总体设计报告应包含以下内容:
系统总体构造及功能划分,系统逻辑框图、组成系统各功能模块的逻辑框图,电路构造图及单板组成,单板逻辑框图和电路构造图,以及可靠性、平安性、电磁兼容性讨论和硬件测试方案等。
3、单板总体设计方案
在单板的总体设计方案定下来之后应出这份文档,单板总体设计方案应包含单板版本号,单板在整机中的位置、开发目的及主要功能,单板功能描述、单板逻辑框图及各功能模块说明,单板软件功能描述及功能模块划分、接口简单定义与相关板的关系,主要性能指标、功耗和采用标准。
4、单板硬件详细设计
在单板硬件进入到详细设计阶段,应提交单板硬件详细设计报告。
在单板硬件详细设计中应着重表达:
单板逻辑框图及各功能模块详细说明,各功能模块实现方式、地址分配、控制方式、接口方式、存贮器空间、中断方式、接口管脚信号详细定义、时序说明、性能指标、指示灯说明、外接线定义、可编程器件图、功能模块说明、原理图、详细物料清单以及单板测试、调试方案。
有时候一块单板的硬件和软件分别由两个开发人员开发,因此这时候单板硬件详细设计便为软件设计者提供了一个详细的指导,因此单板硬件详细设计报告至关重要。
尤其是地址分配、控制方式、接口方式、中断方式是编制单板软件的根底,一定要详细写出。
5、单板软件详细设计
在单板软件设计完成后应相应完成单板软件详细设计报告,在报告中应列出完成单板软件的编程语言,编译器的调试环境,硬件描述与功能要求及数据构造等。
要特别强调的是:
要详细列出详细的设计细节,其中包括中断、主程序、子程序的功能、入口参数、出口参数、局部变量、函数调用和流程图。
在有关通讯协议的描述中,应说明物理层,链路层通讯协议和高层通讯协议由哪些文档定义。
6、单板硬件过程调试文档
开发过程中,每次所投PCB板,工程师应提交一份过程文档,以便管理阶层了解进度,进展考评,另外也给其他相关工程师留下一份有参考价值的技术文档。
每次所投PCB板时应制作此文档。
这份文档应包括以下内容:
单板硬件功能模块划分,单板硬件各模块调试进度,调试中出现的问题及解决方法,原始数据记录、系统方案修改说明、单板方案修改说明、器件改换说明、原理图、PCB图修改说明、可编程器件修改说明、调试工作阶段总结、调试进展说明、下阶段调试方案以及测试方案的修改。
7、单板软件过程调试文档
每月收集一次单板软件过程调试文档,或调试完毕〔指不满一月〕收集,尽可能清楚,完整列出软件调试修改正程。
单板软件过程调试文档应当包括以下内容:
单板软件功能模块划分及各功能模块调试进度、单板软件调试出现问题及解决、下阶段的调试方案、测试方案修改。
8、单板系统联调报告
在工程进入单板系统联调阶段,应出单板系统联调报告。
单板系统联调报告包括这些内容:
系统功能模块划分、系统功能模块调试进展、系统接口信号的测试原始记录及分析、系统联调中出现问题及解决、调试技巧集锦、整机性能评估等。
9、单板硬件测试文档
在单板调试完之后,申请内部验收之前,应先进展自测以确保每个功能都能实现,每项指标都能满足。
自测完毕应出单板硬件测试文档,单板硬件测试文档包括以下内容:
单板功能模块划分、各功能模块设计输入输出信号及性能参数、各功能模块测试点确定、各测试参考点实测原始记录及分析、板内高速信号线测试原始记录及分析、系统I/O口信号线测试原始记录及分析,整板性能测试结果分析。
10、硬件信息库
为了共享技术资料,我们希望建立一个共享资料库,每一块单板都希望将的最有价值最有特色的资料归入此库。
硬件信息库包括以下内容:
典型应用电路、特色电路、特色芯片技术介绍、特色芯片的使用说明、驱动程序的流程图、源程序、相关硬件电路说明、PCB布板考前须知、单板调试中出现的典型及解决、软硬件设计及调试技巧。
3.3与硬件开发相关的流程文件介绍
与硬件开发相关的流程主要有以下几个:
•工程立项流程
•工程实施管理流程
•软件开发流程
•系统测试工作流程
•中试接口流程
•内部接收流程
3.3.1工程立项流程:
是为了加强立项管理及立项的科学性而制定的。
其中包括立项的论证、审核分析,以期做到合理进展开发,合理进展资源分配,并对该立项前的预研过程进展规X和管理。
立项时,对硬件的开发方案的审查是重要内容。
3.3.2工程实施管理流程:
主要定义和说明工程在立项后进展工程系统分析和总体设计以及软硬件开发和内部验收等的过程和接口,并指出了开发过程中需形成的各种文档。
该流程包含着硬件开关、软件开发、构造和电源开发、物料申购并各分流程。
3.3.3软件开发流程:
与硬件开发流程相对应的是软件开发流程,软件开发流程是对大型系统软件开发规X化管理文件,流程目的在对软件开发实施有效的方案和管理,从而进一步提高软件开发的工程化、系统化水平,提高XXXX公司软件产品质量和文档管理水平,以保证软件开发的规X性和继承性。
软件开发与硬件构造密切联系在一起的。
一个系统软件和硬件是相互关联着的。
3.3.4系统测试工作流程:
该流程规定了在开发过程中系统测试过程,描述了系统测试所要执行的功能,输入、输出的文件以及有关的检查评审点。
它规X了系统测试工作的行为,以提高系统测试的可控性,从而为系统质量保证提供一个重要手段。
工程立项完成,成立工程组的同时要成立对应的测试工程组。
在整个开发过程中,测试可分为三个阶段,单元测试、集成测试、系统测试。
测试的主要对象为软件系统。
3.3.5内部验收流程
制定的目的是加强内部验收的规X化管理,加强设计验证的控制,确保产品开发尽快进入中试和生产并顺利推向市场。
工程完成开发工作和文档及相关技术资料后,首先准备测试环境,进展自测,并向总体办递交?
系统测试报告?
及工程验收申请表,总体办审核同意工程验收申请后,要求工程组确定测试工程,并编写?
测试工程手册?
。
测试工程手册要通过总体办组织的评审,然后才组成专家进展验收。
由上可见,硬件开发过程中,必须提前准备好文档及各种技术资料,同时在产品设计时就必须考虑到测试。
4附录一.硬件设计流程图:
5附录二.软件设计流程图:
6附录三.编程规X
单板软件编程规X
目的:
为了开发人员之间更好地进展交流,提高代码的可读性,可维护性,特制订本规X,作为程序编写的指导文件。
本规X只涉及到源码书写的格式,希望能有较统一的编程风格。
将来假设有和公司相关规定冲突的地方,本规X有可能作适当修改。
1。
模块描述
模块是为了实现某一功能的函数的集合,文件名使用缺省的后缀,在每一模块的开头应有如下的描述体:
/********************************************************************
*PROJECTCODE:
工程代号或名称
*CREATEDATE:
创立日期
*CREATEDBY:
创立人
*FUNCTION:
模块功能
*MODIFYDATE:
修改日期
*DOCUMENT:
参考文档
*OTHERS:
程序员认为应做特别说明的局部,如特别的编译开关
********************************************************************/
不同的修改人应在修改的地方加上适当的注释,包括修改人的XX。
另外,如有必要,要注明模块的工作平台,如单板OS、DOS、WINDOWS等。
注明适用的编译器和编译模式。
2。
函数描述
函数是组成模块的单元,一般用来完成某一算法或控制等。
在每一函数的开头应有如下的描述体:
/********************************************************************
*FUNCTIONNAME:
函数名称
*CREATEDATE:
创立日期
*CREATEDBY:
创立人
*FUNCTION:
函数功能
*MODIFYDATE:
修改日期
*INPUT:
输入参数类型(逐个说明)
*OUTPUT:
输出参数类型(逐个说明)
*RETURN:
返回信息
********************************************************************/
可选的描述有:
*RECEIVEDMESSAGES:
收到的消息
*SENTMESSAGES:
发送的消息
*DATABASEACCESS:
存取的数据库
*CALLEDBY:
该函数的调用者
*PROCEDURESCALLED:
调用的过程
*RECEVEDPRIMITIVES:
收到的原语
*SENTPRIMITIVES:
发送的原语
及其它程序员认为应有的描述。
标题可以只大写第一个字母。
例如:
FunctionName:
3。
命名规那么:
A)函数:
函数名应能表达该函数完成的功能,关键局部应采用完整的单词,辅助局部假设太长可采用缩写,缩写应符合英文的规X。
每个单词的第一个字母大写。
如:
ShowPoints,CtrlDestBoard,SendResetMsg等。
B)变量:
变量的命名规那么局部采用匈牙利命名规那么(鼓励完全使用匈牙利名规那么)。
变量的第一个或前两个字母小写,表示其数据类型,其后每个词的第一个字母大写。
推荐的类型前缀如下:
前缀
含义
前缀
含义
a
数组
n
shortint
b
BOOL
np
短指针
by
BYTE
p
指针
c
char
l
LONG
cb
字节记数
lp
长指针
cr
颜色参考值
s
串
cx,cy
短型〔x,y长度的记数〕
sz
以零结尾的串
dw
DWORD
tm
文本
fn
函数
w
WORD
h
HANDLE
x,y
短型〔x或y的坐标〕
i
int
g_
全局变量
m_
类的数据成员
uc
unsignedchar
如iCurrentValue,uTransitionCount等。
对于其他复合类型或自定义类型,请用适当的前缀来表示。
除局部循环变量外,不鼓励单个字母的变量名。
对于常用的类型定义,尽量使用WORD、BOOL、LPWORD、VOID、FAR、NEAR等惯用写法,防止使用char、long、void、far、near等小写格式。
不使用_UC、_UL等XXXX公司以前一些人的习惯写法。
C)构造:
构造的定义有两个名称,一个是该构造的类型名,一个是变量名。
按照C语言的语法,这两个名称都是可选的,但二者必有其一。
我们要求写类型名,类型名以tag做前缀。
下面是一个例子:
structtagVBXEVENT
{
HCTLhControl;
HWNDhWindow;
intnID;
intnEventIndex;
LPCSTRlpEventName;
intnNumParams;
LPVOIDlpParamList;
}veMyEvent;
tagVBXEVENTveMyEvent[MAXEVENTTYPE],*lpVBXEvent;
对于程序中常用的构造,希望能使用typedef定义,格式如下:
typedefstructtagMYSTRUCT
{
structmembers.......
}TMYSTRUCT,*PTMYSTRUCT,FAR*LPTMYSTRUCT;
struct后的类型名有tag前缀,自定义的构造名称一律用大写字母,前面可以加一大写的T。
而构造类型变量定义那么可以写为:
TMYSTRUCTvariablename;
并可在定义MYSTRUCT_S同时根据需要,定义其指针,远指针和尺寸常量:
typedeftagMYSTRUCT
{
structmembers……
}TMYSTRUCT,*PTMYSTRUCT,FAR*LPTMYSTRUCT;
#defineMYSTRUCTSIZEsizeof(TMYSTRUCT);
构造变量的命名,建议采用如下方式:
从构造名中,取出二至三个词的首字母作为代表此构造的缩写,小写作为变量前缀。
例如:
〔取自MicrosoftWindows例如〕
structOPENFILENAMEofnMyFile
strcutCHOOSECOLORccScreenColor
D)联合:
联合的命名规那么和构造相似,如:
uniontagMYEXAMPLE
{
intiInteger;
longlLongInt;
}myExample;
typedeftagMYEXAMPLE
{
intiInteger;
longlLongInt;
}MYEXAMPLE,*PMYEXAMPLE,FAR*LPMYEXAMPLE;
4。
书写风格:
A)函数:
函数的返回类型一定要写,不管它是否默认