单板驱动软件详细设计说明书讲解.docx
《单板驱动软件详细设计说明书讲解.docx》由会员分享,可在线阅读,更多相关《单板驱动软件详细设计说明书讲解.docx(15页珍藏版)》请在冰豆网上搜索。
![单板驱动软件详细设计说明书讲解.docx](https://file1.bdocx.com/fileroot1/2023-6/8/27a00cca-9383-494d-9058-ad9549dedfc5/27a00cca-9383-494d-9058-ad9549dedfc51.gif)
单板驱动软件详细设计说明书讲解
机密
单板/驱动软件详细设计说明书
CJ-7.3-54
v1.0
普天信息技术研究院
200X年月XX日
修订历史记录
日期
版本
作者
备注
编制
姓名
签字
日期
审查
姓名
签字
日期
审核
姓名
签字
日期
批准
姓名
签字
日期
文档评审负责人:
参加评审人员:
1引言
1.1编写目的
〖说明编写这份软件详细设计说明书的目的〗
本文档是以RFID读卡器硬件结构为基础,以《RFID读卡器需求分析说明书》和《RFID读卡器软件概要设计说明书》为指导编写而成。
本文档旨在分析RFID读卡器需求的基础上,定义各个功能模块的实现方式与具体函数,以达到实际应用的目的。
同时也为RFID读卡器后期的软件升级和维护提供便利。
1.2背景
〖说明待开发软件(子)系统的名称和此软件(子)系统所属大系统的名称;说明任务的来源(开发背景和市场背景)等;该软件(子)系统与大系统中其他子系统的关系。
〗
RFID读卡器通常使用无线电调制方式和卡片进行信息交换,通常根据以下几种标准来设计,即ISO/IEC10536标准、ISO/IEC14443标准、ISO/IEC15693标准。
根据ISO/IEC10536标准设计的卡称为"密耦合卡",对应的阅读器也相应遵循ISO/IEC10536标准设计;根据ISO/IEC14443标准设计的卡是近耦合卡,对应的阅读器遵循ISO/IEC14443标准设计;根据ISO/IEC15693标准设计的卡是遥耦合卡,对应的阅读器遵循ISO/IEC15693标准设计。
遥耦合卡比近耦合卡具有更远的读卡距离,但二者均采用13.56MHz工作频率,均具有防冲突机制。
RFID读卡器的设计还应该考虑具体的行业应用规范,比如金融行业的中国银联《非接触IC卡读卡器技术规范》或支持某些特殊应用协议,比如PC/SC协议。
本产品是针对金融服务业开发的RFID读卡器,配合我们自主研发的大容量智能存储卡的推广应用。
本文档是在RFID读卡器硬件设计、外观设计已经完成,系统需求与概要设计已经确定的背景下完成的。
1.3定义
〖列出本文档中所用到的专门术语的定义和缩写词的原意〗
RFIDRadioFrequencyIdentification无线射频身份识别
APDUApplicationProtocolDataUnit应用协议数据单元
USBUniversalSerialBus通用串行总线
1.4设计依据
〖列出本文档所引用的有关设计依据(标题、文件编号、版本号、作者、发布日期、出版单位),包括本项目内部已编写的有效文档、出版刊物和国家标准或规范〗
RFID读卡器支持ISO/IEC14443TypeA/TypeB的非接触智能卡和Mifareone系列存储卡,内置2个小SIM卡座,支持符合ISO/IEC7816-1/2/3的智能卡。
本RFID读卡器参考以下外部文档:
•支持符合标准非接触IC卡读卡器技术规范l
•ISO/IEC14443-1/2/3/4
•ISO/IEC7816-1/2/3
•USB2.0标准l
•《AT89C5131.PDF》ATMEL公司提供的参考设计文档资料
•《MCRF531.PDF》NXP公司提供的参考设计文档资料
本RFID读卡器参考以下文档:
•RFID读卡器软件需求分析说明书
•RFID读卡器软件概要设计说明书
2软件系统结构
2.1功能需求
图1RFID读卡器功能框图
RFID读卡器系统控制软件是这个RFID读卡机的灵魂。
RFID读卡器系统控制软件本着满足各个功能模块的具体要求和实际使用时用户的具体需求进行设计。
采用自上而下的软件设计方法逐步细化进行模块化设计。
使控制软件具有很好的可读性、逻辑性和易扩展性。
软件通过MCU控制硬件资源,利用USB接口、UART接口接收并响应上层应用的命令,利用非接触卡接口完成与非接触智能卡的数据交换,利用SIM卡接口满足应用对安全鉴权模块的需求,利用LED和BEEP提供操作帮助,如显示RFID读卡器状态、提示异常,时钟和电源是RFID读卡器工作的基本保证。
设计遵循USB2.0通讯协议规范、ISO7816协议规范和ISO14443协议规范。
2.2子模块划分
〖说明本软件系统(或模块)的实现,即其内部的子模块划分(给出程序的名称和标识符)。
建议以图形说明。
〗
图2RFID读卡器软件模块图
如图2所示,本RFID读卡器系统软件可以具体划分为中心控制模块(MCU)、报警提示模块、非接触卡控制模块、安全鉴权模块、应用接口模块和卡片协议模块6个部分,是对概要设计中读卡器管理模块、应用接口模块和卡片接口模块的细致划分。
1.中心控制模块(MCU)
图3中心控制模块结构图
如图3所示,中心控制模块由系统初始化模块(Init_System())、循环控制模块(While())、中断服务模块组成。
系统初始化模块完成系统时钟初始化、定时器中断初始化、波特率初始化等操作;循环控制模块用来轮询UART或USB端口进行系统任务的选择具体任务如图4所示;中断服务模块完成MCU同上位PC机的通讯和非接触卡通讯等操作。
图4循环控制模块任务图
2.报警提示模块
LED控制是读卡器系统工作的辅助设计,完成对读卡器工作状态的指示和系统故障的报警提示,分别采用长亮和10KHz频闪的方式(LED_ON()、LED_Flash_10K())。
BEEP控制是读卡器系统工作的辅助设计,完成读卡器系统故障时的报警提示和系统部分功能使用时的提示音(Beep_On()、Beep_Error())。
3.非接触卡控制模块
图5非接触卡控制芯片程序划分图
非接触卡控制模块程序设计是针对控制芯片MFRC531进行代码设计,由下至上分为物理层、数据链路层、会话层和传输层4个具体模块,以完成非接触卡传输协议ISO14443协议的工作需求。
具体实现了寻卡、卡防冲突、选卡、卡读写等具体操作。
TYPEA和TYPEB的启动和防冲突过程如图6、图7所示。
图6TYPEA启动和防冲突流程图
图7TYPEB启动和防冲突流程图
4.安全鉴权模块
图8安全鉴权模块程序划分图
安全鉴权模块是针对SIM卡进行代码设计,符合ISO7816相关协议,支持T=0和T=1两种工作模式。
程序划分为物理层、数据链路层和应用层3个模块,实现选卡、PPS请求和APDU的功能需求。
对SIM卡的操作流程如图9所示。
图9SIM卡操作流程图
5.应用接口模块
•UART接口
UART接口采用定时器中断方式进行数据接收,发送采用查询方式进行,具体的初始化设置在中心控制模块的初始化模块中定义。
•USB接口
USB接口采用中断方式进行数据的接收和发送。
相关函数模块如表1所示。
函数名称
函数功能
USB_General_Config()
USB接口全局设置
USB_Endpoint_Config()
USB接口端点设置
USB_Read()
MCU从USB接口读数据
USB_Send()
MCU将数据发送到USB接口
USB_Bulk_Read()
MCU从USB接口以块模式读数据
USB_Bulk_Send()
MCU将数据以块模式发送到USB接口
表1USB接口函数表
6.卡片协议模块
卡片协议模块完成非接触卡和SIM卡之间的信息交互,以进行安全认证工作(Safe_Garud())。
2.3子模块间关系
〖说明各子模块间的控制、顺序等耦合关系。
〗
图10系统自模块调用关系图
3公共数据结构
〖给出本软件系统使用的每一个公共数据结构的类型定义、存储方式,公共数据结构内各元素项的类型定义、初始取值、可能取值的范围及相应的物理含义。
建议以类似C语言的数据说明格式来描述。
〗
4程序设计说明
〖从本章节开始,逐个对每个程序模块给出以下的设计说明。
以下给出的提纲是针对一般情况的,对于一个具体的模块,尤其是层次较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点就可以了。
〗
4.1程序1设计说明
4.1.1程序描述
〖给出对该程序的简单描述,主要说明安排设计本程序的目的和意义,并且说明本程序的特点(是否常驻内存、是否子程序、顺序处理还是并发处理、是可重入的还是不可重入的等等)〗
4.1.2功能
〖说明本程序应具备的功能,可用IPO图(输入-处理-输出)的形式描述。
〗
4.1.3性能
〖说明对本程序的全部性能要求,包括精度、灵活性、时间特性等〗
4.1.4输入
〖给出本程序的输入参数的详细说明,包括名称、标识、取值范围、格式、含义,及参数间的控制、顺序、独立或依赖等关系。
〗
4.1.5输出
〖给出本程序的输出参数的详细说明,包括名称、标识、取值范围、格式、含义,及参数间的控制、顺序、独立或依赖等关系。
〗
4.1.6算法
〖详细说明本程序所选用的算法、具体的计算公式和计算步骤〗
4.1.7流程
〖采用流程图或伪码给出程序流程。
〗
4.2程序2设计说明
〖类似于程序1设计说明的方式,说明第2个程序乃至第N个程序的设计考虑〗
5模块重用说明
提示:
此处简要说明各子程序是否重用,以及大致重用比率
例如使用以下表格表示。
(可换用其他易表达的方式)
#
程序名称
是否重用
重用比例
1
程序1
Y/N
2
程序2
Y/N
3
…….
添加适当的文字性描述说明重用状况(不可省略)