CN109885433B - 一种快速测试spi通信模块的方法 - Google Patents
一种快速测试spi通信模块的方法 Download PDFInfo
- Publication number
- CN109885433B CN109885433B CN201811638883.3A CN201811638883A CN109885433B CN 109885433 B CN109885433 B CN 109885433B CN 201811638883 A CN201811638883 A CN 201811638883A CN 109885433 B CN109885433 B CN 109885433B
- Authority
- CN
- China
- Prior art keywords
- spi
- byte
- test
- upper computer
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Communication Control (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明公开了一种快速测试SPI通信模块的方法,该方法基于串行接口进行通信,该方法包括有以下步骤:S1:规定上位机与下位机之间的通信协议;S2:上位机自动配置SPI模块,且上位机利用SPI模块生成测试用例的配置表,并把配置表转换成对应的测试指令;S3:上位机与下位机之间通信;S4:下位机接收到测试指令后,解析出配置指令,按照配置指令的配置信息初始化芯片的SPI,使其在上位机指定工作模式下工作。本测试方法能实现对SPI模块近10万条用例的全自动测试,快速、高效的测试串行外设接口模块,缩短SPI模块的测试周期,极大程度地减少在该模块上所耗费的人力和时间成本。
Description
技术领域
本发明属于通信模块测试的技术领域,特别涉及应用于基于Cortex M系列内核的32位芯片SPI通讯模块的测试。
背景技术
SPI(Serial Peripheral Interface)是串行外设接口,是一种高速的、全双工、同步的通信总线。随着通信技术的发展,串行外设接口因其工作方式多、配置灵活、兼容性好、通讯速率高等特点而被广泛应用在多种通用类型的芯片中,SPI模块逐渐成为芯片中一个十分重要的外设模块。
在目前的芯片设计中,为确保芯片的各项性能指标,往往需要在芯片设计的多个阶段对其进行测试验证。但是,一方面由于SPI模块由于兼容Motorola、TI、NSSP Pulse等多种通讯协议,另一方面,其通讯数据长度支持4~16bit可选、SPI支持8种主机模式通讯波特率分频,测试芯片时需采用近十万条组合测试用例才能达到其测试效果。这给验证测试工作带来了极大不便。但若使用传统的测试方法,则无法覆盖如此众多的测试用例,导致测试效率低下。
在专利申请号为201611020255.X的专利申请文件中公开了一种ICE自动化测试系统及测试方法,测试系统包含上位机和下位机两大部分,所述上位机使用脚本作为测试系统的中央控制台,所述下位机包含:DUT和TB测试板;所述上位机和下位机通过API接口进行通信。本发明所实现的自动化测试系统和测试方法,能实现所有ICE支持型号的数字功能测试,减少测试人力的投入,很大程度上减少了手动操作,大大缩短了测试流程。并且自动化输出测试日志,方便测试人员快速发现问题,进而修复芯片设计。
然而,该申请中公开了通过上位机和下位机进行测试,但是对于SPI模块,上述方法无法覆盖众多的测试用例,测试效率低下。
发明内容
基于此,因此本发明的首要目地是提供一种快速测试SPI通信模块的方法,该方法采用上位机软件与下位机相配合的方式,动态配置芯片SPI模块相关的寄存器,实现SPI模块在各种不同配置下的工作方式。
本发明的另一个目地在于提供一种快速测试SPI通信模块的方法,该方法能够快速、高效的测试串行外设接口模块,缩短SPI模块的测试周期,极大程度地减少在该模块上所耗费的人力和时间成本。
为实现上述目的,本发明的技术方案为:
本发明公开了一种快速测试SPI通信模块的方法,该方法基于串行接口进行通信,该方法包括有以下步骤:
S1:规定上位机与下位机之间的通信协议;
S2:上位机自动配置SPI模块,且上位机利用SPI模块生成测试用例的配置表,并把配置表转换成对应的测试指令;
S3:上位机与下位机之间通过串行接口进行通信,上位机通过串行接口将配置表转换成为对应的测试指令传递给下位机;
S4:下位机接收到测试指令后,解析出配置指令,按照配置指令的配置信息初始化芯片的SPI,使其在上位机指定工作模式下工作。
本发明提出的测试方法,能实现对SPI模块近10万条用例的全自动测试。该方法能够快速、高效的测试串行外设接口模块,缩短SPI模块的测试周期,极大程度地减少在该模块上所耗费的人力和时间成本。
应该强调的是,本发明不仅限于SPI模块的验证测试,芯片的其他复杂外设模块均可采用该方法进行测试验证。
进一步地,串行接口的配置为:波特率为115200bps、数据位为8位、无奇偶校验位、停止位为1位。
其中,步骤S1:规定上位机与下位机之间的通信协议中,上位机与下位机之间每组通信数据均为16字节;所述16字节的通讯数据为byte0~byte15;其中:
byte 0:为数据帧头;
byte 1:bit6为主机/从机选择位;bit7为DMA使能位;
byte 2:为通讯方式选择;
byte 3:为SPI发送的数据长度;
byte 4:SPI通讯速率;
byte 5:从机管理选择;
byte 6~7:校验码;
byte 8:SPI循环测试次数;
byte 9:bit0为数据锁存沿选择位;bit 1为时钟空闲电平位;bit 2为NSSP脉冲使能位;bit 3为TI使能位;bit 4为高低位在前选择位;bit 5-bit6为CRC长度位;bit7为CRC使能位;
byte 10:发送或者接收数据;
byte11:无实际意义;
byte12:无实际意义;
byte13:无实际意义;
byte 14:SPI配置命令;
byte 15:前15个数据的校验码。基于上述通讯协议,下位机能有效识别上位机对SPI的配置信息,并检测数据在传输的过程中是否发生错误。
其中,步骤S2:上位机自动配置SPI模块,且上位机利用SPI模块生成测试用例的配置表,并把配置表转换成对应的测试指令包括有以下子步骤:
S21:上位机初始化各个GUI组件;
S22:读取下位机发送到edit box组件的信息,将该消息与“开始测试”变量对比,若相等则跳转至S23;若不相等,则复位下位机,直到结果相等;
S23:发送配置指令,延迟一定时间后,再发送测试信息;
S24:程序进入循环,循环读取edit box中的信息,此时信息为SPI测试结果反馈信息;若反馈结果表示通过,则跳转S25;若反馈结果表示未通过,则记录未通过的配置指令,程序一直循环,直到配置表中的所有指令均测试完;
S25:判断是否存在下一条测试指令,进行下一轮测试。
其中,步骤S4:下位机接收到测试指令后,解析出配置指令,按照配置指令的配置信息初始化芯片的SPI,使其在上位机指定工作模式下工作具体包含有以下子步骤:
S41:下位机上电,初始化系统;
S42:下位机给上位机发送“开始测试”提示信息,等待上位机发送配置信息;
S43:接收到上位机的数据后,按照上位机与下位机之间的通讯协议解析数通讯数据,提取具体参数完成测试。
本文提出的测试方法,能实现对SPI模块近10万条用例的全自动测试,解决了现有的测试技术中存在的上述方法无法覆盖众多的测试用例,测试效率低下等问题,快速、高效的测试串行外设接口模块,缩短SPI模块的测试周期,极大程度地减少在该模块上所耗费的人力和时间成本。
附图说明
图1是本发明所实现测试SPI通信模块的系统框图。
图2是本发明所实现测试SPI通信模块的方法的上位机的流程图。
图3是本发明所实现测试SPI通信模块的方法的下位机的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1-3所示,本发明所实现的快速测试SPI通信模块的方法,该方法基于串行接口进行通信,主要包括有以下步骤:
S1:规定上位机与下位机之间的通信协议;
S2:上位机自动配置SPI模块,且上位机利用SPI模块生成测试用例的配置表,并把配置表转换成对应的测试指令;
S3:上位机与下位机之间通过串行接口进行通信,上位机通过串行接口将配置表转换成为对应的测试指令传递给下位机;
S4:下位机接收到测试指令后,解析出配置指令,按照配置指令的配置信息初始化芯片的SPI,使其在上位机指定工作模式下工作。
通过所述测试方法,能实现对SPI模块近10万条用例的全自动测试;而且该方法能够快速、高效的测试串行外设接口模块,缩短SPI模块的测试周期,极大程度地减少在该模块上所耗费的人力和时间成本。
在实际的使用过程中,上述方法不限于对SPI模块的验证测试,芯片的其他复杂外设模块均可采用该方法进行测试验证。
进一步地,串行接口的配置为:波特率为115200bps、数据位为8位、无奇偶校验位、停止位为1位。
其中,步骤S1:规定上位机与下位机之间的通信协议中,上位机与下位机之间每组通信数据均为16字节;所述16字节的通讯数据为byte0~byte15;以a5 80 00 04 04 02 0007 05 b4 00 00 00 00 01 f0作为其中一组通讯数据举例,该组通信数据中:
byte 0:0xa5,数据帧头,为固定值;
byte 1:bit6为主机/从机选择位,其中,bit6为1为从机选择,bit6为0为主机选择;bit7为DMA使能位,其中bit7为使能位,bit7为0为禁止;其他位无实际意义;
byte 2:为通讯方式选择,其中byte2为0为全双工模式;byte2为1为半双工通信模式;byte2为2为简单通讯模式;byte2为3多机通信模式;
byte 3:为SPI发送的数据长度,其中,该4~16bit对应表示为:bit3为0表示数据长度4,bit3为1表示数据长度为5,依此类推;
byte 4:SPI通讯速率,其计算方法为:PCLK/x,其中,PCLK为外设工作的时钟频率,x取2,4,8,16,32,64,128,256中任意一个值;bit4=为0表示x=2;byte4为1表示x=4,依此类推;
byte 5:从机管理选择,管理方式有三种,分别为:软件控制,NSS输入和NSS输出;其中bit5为0为软件控制;bit5为1为NSS输入;bit5为2为NSS输出;
byte 6~7:校验码,其bit6为校验码高位,bit7为校验码低位;例如:CRC的值为9,则bit6=00,bbit7=09;
byte 8:SPI循环测试次数,例如,byte8为5表示循环测试次数为5次;
byte 9:bit0为数据锁存沿选择位,其中,bit0为0表示数据锁存沿为第一沿;bit0为0表示数据锁存沿为第二沿;bit 1为时钟空闲电平位,其中,bit1为0表示时钟空闲电平为高电平;bit1为1表示时钟空闲电平为低电平;bit 2为NSSP脉冲使能位,其中bit2为1则使能NSSP;bit2为0则禁止NSSP,;bit 3为TI使能位,其中,bit3为1表示使能TI模式;bit3为0禁止TI模式;bit 4为高低位在前选择位,其中,bit4为0表示高位在前;bit4为1表示低位在前;bit 5-bit6为CRC长度位,其中,bit5-bit6为00表示CRC长度为与数据相同;bit5-bit6为01表示CRC长度为8bit;为bit5-bit610表示CRC长度为16byte;bit7为CRC使能位;
byte 10:发送或者接收数据,其中,byte10为0表示发送数据;byte10为1表示接收数据;
byte11:无实际意义;
byte12:无实际意义;
byte13:无实际意义;
byte 14:SPI配置命令,其中,byte14为1则下位机配置SPI模块;byte14为2则下位机开始测试SPI模块;
byte 15:前15个数据的校验码。基于上述通讯协议,下位机能有效识别上位机对SPI的配置信息,并检测数据在传输的过程中是否发生错误。
其中,步骤S2:上位机自动配置SPI模块,且上位机利用SPI模块生成测试用例的配置表,并把配置表转换成对应的测试指令包括有以下子步骤:
S21:上位机初始化各个GUI组件;
S22:读取下位机发送到edit box组件的信息,将该消息与“开始测试”变量对比,若相等则跳转至S23;若不相等,则复位下位机,直到结果相等;
S23:发送配置指令,延迟一定时间后,再发送测试信息;
S24:程序进入循环,循环读取edit box中的信息,此时信息为SPI测试结果反馈信息;若反馈结果表示通过,则跳转S25;若反馈结果表示未通过,则记录未通过的配置指令,程序一直循环,直到配置表中的所有指令均测试完;
S25:判断是否存在下一条测试指令,进行下一轮测试。
其中,步骤S4:下位机接收到测试指令后,解析出配置指令,按照配置指令的配置信息初始化芯片的SPI,使其在上位机指定工作模式下工作具体包含有以下子步骤:
S41:下位机上电,初始化系统;
S42:下位机给上位机发送“开始测试”提示信息,等待上位机发送配置信息;
S43:接收到上位机的数据后,按照上位机与下位机之间的通讯协议解析数通讯数据,提取具体参数完成测试。其中,“提取具体参数”指的是根据参数中byte14等于1或2决定是配置SPI还是测试SPI,在具体测试中,一般是先配置SPI再测试SPI,因此要求上位机发送两次指令,第一次是配置指令,第二次是测试指令,假如byte14=2,则开始测试SPI,每完成一次测试,测试次数变量减1,直到测试变量变为0。
本文提出的测试方法,能实现对SPI模块近10万条用例的全自动测试,解决了现有的测试技术中存在的上述方法无法覆盖众多的测试用例,测试效率低下等问题,快速、高效的测试串行外设接口模块,缩短SPI模块的测试周期,极大程度地减少在该模块上所耗费的人力和时间成本。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种快速测试SPI通信模块的方法,该方法基于串行接口进行通信,其特征在于,该方法包括以下步骤:
S1:规定上位机与下位机之间的通信协议;所述步骤S1:规定上位机与下位机之间的通信协议中,上位机与下位机之间每组通信数据均为16字节;所述16字节的通讯数据为byte0~byte15;其中:
byte 0:为数据帧头;
byte 1:bit6为主机/从机选择位;bit7为DMA使能位;
byte 2:为通讯方式选择;
byte 3:为SPI发送的数据长度;
byte 4:SPI通讯速率;
byte 5:从机管理选择;
byte 6~7:校验码;
byte 8:SPI循环测试次数;
byte 9:bit0为数据锁存沿选择位;bit 1为时钟空闲电平位;bit 2为NSSP脉冲使能位;bit 3为TI 使能位;bit 4为高低位在前选择位;bit 5-bit6为CRC长度位;bit7为CRC使能位;
byte 10:发送或者接收数据;
byte11:无实际意义;
byte12:无实际意义;
byte13:无实际意义;
byte 14:SPI配置命令;
byte 15:前15个数据的校验码;
S2:上位机自动配置SPI模块,且上位机利用SPI模块生成测试用例的配置表,并把配置表转换成对应的测试指令;
S3:上位机与下位机之间通过串行接口进行通信,上位机通过串行接口将配置表转换成为对应的测试指令传递给下位机;
S4:下位机接收到测试指令后,解析出配置指令,按照配置指令的配置信息初始化芯片的SPI,使其在上位机指定工作模式下工作。
2.如权利要求1所述的快速测试SPI通信模块的方法,其特征在于,所述串行接口的配置为:波特率为115200bps、数据位为8位、无奇偶校验位、停止位为1位。
3.如权利要求1所述的快速测试SPI通信模块的方法,其特征在于,所述步骤S2:上位机自动配置SPI模块,且上位机利用SPI模块生成测试用例的配置表,并把配置表转换成对应的测试指令,具体包括以下步骤:
S21:上位机初始化各个GUI组件;
S22:读取下位机发送到edit box组件的信息,将该信息 与“开始测试”变量对比,若相等则跳转至S23;若不相等,则复位下位机,直到结果相等;
S23:发送配置指令,延迟一定时间后,再发送测试信息;
S24:程序进入循环,循环读取edit box中的信息,此时信息为SPI测试结果反馈信息;若反馈结果表示通过,则跳转S25;若反馈结果表示未通过,则记录未通过的配置指令,程序一直循环,直到配置表中的所有指令均测试完;
S25:判断是否存在下一条测试指令,进行下一轮测试。
4.如权利要求3所述的快速测试SPI通信模块的方法,其特征在于,所述步骤S4:下位机接收到测试指令后,解析出配置指令,按照配置指令的配置信息初始化芯片的SPI,使其在上位机指定工作模式下工作具体包含有以下子步骤:
S41:下位机上电,初始化系统;
S42:下位机给上位机发送“开始测试”提示信息,等待上位机发送配置信息;
S43:接收到上位机的数据后,按照上位机与下位机之间的通讯协议解析数通讯数据,提取具体参数完成测试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811638883.3A CN109885433B (zh) | 2018-12-29 | 2018-12-29 | 一种快速测试spi通信模块的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811638883.3A CN109885433B (zh) | 2018-12-29 | 2018-12-29 | 一种快速测试spi通信模块的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109885433A CN109885433A (zh) | 2019-06-14 |
CN109885433B true CN109885433B (zh) | 2022-09-16 |
Family
ID=66925474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811638883.3A Active CN109885433B (zh) | 2018-12-29 | 2018-12-29 | 一种快速测试spi通信模块的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109885433B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112100013B (zh) * | 2020-11-18 | 2021-09-21 | 北京智芯微电子科技有限公司 | 安全芯片spi接口测试方法、装置及系统 |
TWI765642B (zh) * | 2021-04-06 | 2022-05-21 | 大陸商北京集創北方科技股份有限公司 | 級聯晶片電路之跨晶片spi通信方法、電路裝置及資訊處理裝置 |
CN113539350B (zh) * | 2021-06-17 | 2023-10-03 | 杭州加速科技有限公司 | 基于ate设备自检的方法和系统 |
CN117672342B (zh) * | 2024-01-29 | 2024-04-05 | 合肥康芯威存储技术有限公司 | 一种存储芯片的协议监测系统以及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080035763A (ko) * | 2006-10-20 | 2008-04-24 | 삼성전기주식회사 | Pc를 이용하여 테스트하기 위한 임베디드 시스템 및 그방법 |
CN105004984A (zh) * | 2015-06-25 | 2015-10-28 | 深圳市芯海科技有限公司 | 一种自动化芯片测试方法 |
CN106649101A (zh) * | 2016-11-18 | 2017-05-10 | 芯海科技(深圳)股份有限公司 | 一种ice自动化测试系统及测试方法 |
CN107943625A (zh) * | 2017-11-06 | 2018-04-20 | 上海华虹集成电路有限责任公司 | 一种可模拟多种通讯接口的mcu测试方法 |
-
2018
- 2018-12-29 CN CN201811638883.3A patent/CN109885433B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080035763A (ko) * | 2006-10-20 | 2008-04-24 | 삼성전기주식회사 | Pc를 이용하여 테스트하기 위한 임베디드 시스템 및 그방법 |
CN105004984A (zh) * | 2015-06-25 | 2015-10-28 | 深圳市芯海科技有限公司 | 一种自动化芯片测试方法 |
CN106649101A (zh) * | 2016-11-18 | 2017-05-10 | 芯海科技(深圳)股份有限公司 | 一种ice自动化测试系统及测试方法 |
CN107943625A (zh) * | 2017-11-06 | 2018-04-20 | 上海华虹集成电路有限责任公司 | 一种可模拟多种通讯接口的mcu测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109885433A (zh) | 2019-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109885433B (zh) | 一种快速测试spi通信模块的方法 | |
CN107907814B (zh) | 一种提高芯片量产测试效率的方法 | |
US20100095159A1 (en) | Apparatus and method for automatic testing of software or digital devices | |
CN110058147B (zh) | 基于fpga的芯片测试系统及方法 | |
CN104483959A (zh) | 故障模拟与测试系统 | |
CN104407279A (zh) | 一种用于自动测试芯片mdio总线协议的码型数据、装置及测试方法 | |
CN105100796A (zh) | 电视测试方法、装置及系统 | |
CN105786736A (zh) | 一种多芯片级联的方法、芯片和装置 | |
CN109086175B (zh) | 一种板卡测试方法及装置 | |
CN115932549A (zh) | 一种芯片测试系统及测试方法 | |
CN109407655B (zh) | 一种调试芯片的方法及装置 | |
CN112860495A (zh) | 一种i2c从设备的调试方法、i2c主设备及存储介质 | |
CN112015119B (zh) | 调试控制电路和调试控制方法 | |
CN113946480A (zh) | 一种i2c总线的检测装置和方法 | |
US20230367936A1 (en) | Verification method, electronic device and storage medium | |
CN105354157A (zh) | 配置iic器件的方法、装置和系统 | |
CN112988634A (zh) | 多天线通道装置及配置方法 | |
CN115134427B (zh) | 通信协议协调方法、装置、计算机设备和存储介质 | |
CN202818323U (zh) | 基于fpga芯片的基带npz码误码仪 | |
US20220291283A1 (en) | Automatic chip testing system and method | |
CN103176119B (zh) | Usb芯片硅片级自动测试仪及测试方法 | |
CN114253784A (zh) | 芯片测试模式的配置方法、装置、soc芯片及电子设备 | |
CN113645052B (zh) | 一种固件调试方法及相关设备 | |
US20050283693A1 (en) | Multi-chip digital system signal identification method and apparatus | |
CN109254937B (zh) | Usb集线器、usb设备枚举异常检测方法及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |