1.本发明涉及一种硬件线路正确性的验证方法,特别涉及一种嵌入式产品的硬件线路正确性的快速验证方法。
背景技术:2.在嵌入式产品研发过程中,产品功能验证往往需要消耗非常长的时间。这个阶段的验证内容可以分为两个部分:硬件功能验证和软件功能验证。但这两个方面的功能验证经常融合到一起来实施,主要原因是没有软件辅助的情况下,硬件工程师能够验证的内容非常有限。于是一般情况下,都是在硬件没有充分验证的情况下,直接将没有充分验证的嵌入式软件加载到硬件上直接进行业务测试。在业务功能异常的时候,软硬件工程师一起分析和定位问题,之后再进行硬件版本和软件版本的更新迭代,直到产品功能稳定进入到研发的下一个阶段。由于硬件和软件都可能存在很多错误,各种错误又参杂和交织到一起,使得问题分析非常困难,产品的推进效率低下。
3.目前在嵌入式产品研发过程中,产品功能验证中对硬件本身的验证做的非常有限,硬件相关的缺陷,往往需要借助于产品功能验证来发现,存在如下缺点:1、硬件相关的验证中,由于没有可用的软件来配合,硬件只能验证诸如电源,晶振等简单功能;2、 产品功能开发往往需要很长时间,存在硬件做了初步验证以后,有较长时间在等待软件开发完成;3、由于功能验证时,软件和硬件都存在不可预知的缺陷和错误,使得问题分析特别困难。并且往往需要软件工程师和硬件工程师一起进行问题分析,团队的沟通和协调也需要消耗不少时间和精力;4、在软件功能没有验证完成的情况下,团队无法确定硬件是否还存在功能缺陷;5、某些情况下,某些核心电路单元功能异常的时候,影响软件很多功能,导致产品功能验证无法正常推进。在硬件进行迭代和更新以后,之前无法验证的功能和逻辑将会得到验证,但有可能发现更多的硬件缺陷,从而硬件需要再次迭代。
技术实现要素:4.本发明所要解决的技术问题是克服现有技术的不足,提供了一种硬件线路正确性的快速验证方法,使得在前期可以对硬件进行全面的功能验证,使硬件可以快速迭代并稳定,后续软件的验证可以在相对稳定的硬件上进行,大大缩短了产品功能验证阶段。
5.本发明所采用的技术方案是:所述一种硬件线路正确性的快速验证方法需要使用到上位机、硬件通信接口以及嵌入式硬件,所述嵌入式硬件包含mcu及与所述mcu连接的若干个外设,所述上位机通过硬件通信接口与所述mcu连接,所述一种硬件线路正确性的快速验证方法用于检测检测mcu与外设之间硬件线路是否连通,该方法包括如下步骤:a、上位机发送指令后,mcu解析指令参数,将某一引脚pb设置为输出或输入状态;
b、当引脚pb设置为输出状态时,用万用表测量与所述引脚pb相连的外设引脚的电压是否与引脚pb的电压一致;c、当引脚pb设置为输入状态时,与所述引脚pb相连的外设引脚上拉电阻接到高电平信号上或下拉电阻接到低电平信号上,用万用表测量与所述引脚pb相连的外设引脚的电压是否与引脚pb的电压一致;d、如果引脚pb跟随外设引脚电平始终保持一致,说明引脚pb与外设之间硬件线路的连接是正确,否则为不正确。
6.当mcu的引脚无论作为输入还是输出,都不会损坏硬件电路时,所述一种硬件线路正确性的快速验证方法用于检测检测mcu与外设之间硬件线路是否连通,该方法包括如下步骤:a、上位机发送指令后,mcu解析指令参数,设置某一引脚pa输出高电平;b、用万用表测量与所述引脚pa相连的外设引脚的电压是否为高;c、上位机发送指令后,mcu解析指令参数,设置某一引脚pa输出低电平;d、用万用表测量与所述引脚pa相连的外设引脚的电压是否为低;e、如果外设引脚的电压跟随指令从高变为低,说明所述引脚pa与外设引脚之间硬件线路的连接是正确的,否则为不正确。
7.当mcu的引脚作为输出可能会损坏硬件电路时,将mcu的引脚设置为输入,所述一种硬件线路正确性的快速验证方法用于检测检测mcu与外设之间硬件线路是否连通,该方法包括如下步骤:a、上位机发送指令后,mcu解析指令参数,设置某一引脚pc为输入模式;b、将与引脚pc连接的外设引脚通过上拉电阻接到高电平信号上;c、上位机发送指令后,mcu解析指令参数,读取引脚pc的电平,将引脚pc的电平返回到上位机,读取是否为高电平;d、将与引脚pc连接的外设引脚通过下拉电阻接到低电平信号上;e、上位机发送指令,读取引脚pc的电平,将引脚pc的电平返回到上位机,读取是否为低电平;f、如果引脚pc跟随外设引脚从高电平变到低电平,说明引脚pc与外设之间硬件线路的连接是正确,否则为不正确。
8.本发明的有益效果是:现有技术验证硬件连通性需要的时间较长,并且需要较完善的软硬条件,但本方法不需要具备完善的软件环境,只需具备一个能与上位机通信的硬件接口即可。本发明操作更简单、开发更快,并且具备的功能较强大,能通过gpio指令测试大部分硬件线路。本发明仅需要一个能通信的硬件接口结合gpio指令就能实现,功能扩充方便,通用性高,运行效率高,稳定性好,具体来说:1、能在项目开发前期,软件开发没完成时,快速验证硬件的连线和部分功能;2、性能强大,可复用性高,通过简单的gpio指令就能验证大部分硬件线路;3、假设线路本身连通没任何问题,则可以在极短时间内完成连通性验证;4、假设线路本身有问题,则可以快速定位到模块,再从模块开始检查问题。
附图说明
9.图1是本发明的设计图;图2是pcm1840系统框图;图3是上位机与mcu的指令交互过程图;图4是实施例一的示意图;图5是实施例二的示意图;图6是实施例二中的msz引脚电压状态图;图7是实施例三的示意图。
具体实施方式
10.本发明的整体设计如图1所示,主要由上位机、硬件通信接口、包含mcu的嵌入式硬件组成。
11.上位机和嵌入式硬件之间通过某种通信接口连接,常用的有串口,网口或者usb等,根据具体的产品选择一个可用的通信接口就可以,一般的嵌入式产品都有基于串口的调试接口,后续我们以串口举例具体的应用场景。嵌入式硬件往往由于产品功能的差异会有很大的差异,但都可以统一看作是mcu最小系统+外设功能模块组成。上位机可使用终端或putty等调试工具给mcu发送指令。所有指令格式都可以自己定义。
12.检测mcu与外设之间硬件线路是否连通,有以下两种情况:情况一,无论gpio作为输入还是输出,都不会损坏硬件电路时,将gpio设置为输出操作更简便。以i2c总线中的sda为例,sda即可以输入也可以输出,假设sda对应mcu中pa8引脚,将它作为输出,检测方法如下:
①
上位机发送指令“gpio a8 out 1”后,mcu解析指令参数,设置pa8输出高电平;
②
用万用表测量与pa8相连的外设引脚的电压是否为高;
③
上位机发送指令“gpio a8 out 0”,设置pa8输出低电平;
④
用万用表测量与pa8相连的外设引脚的电压是否为低;
⑤
如果外设引脚的电压跟随指令从高变为低,说明pa8与外设引脚之间硬件线路的连接是正确的。
13.情况二,当gpio作输出可能会损坏硬件电路时,将gpio设置为输入更安全。比如由外设引脚输出固定电平到mcu,该条硬件线路没有保护元件,一旦换mcu输出就会损坏硬件电路,这里只能将gpio作为输入,假如与外设连接的引脚为pc5,检测方法如下:
①
上位机发送指令“gpio c5 in”后,mcu解析指令参数,设置pc5为输入模式;
②
将外设引脚通过上拉电阻接到高电平信号上;
③
上位机发送指令“gpio c5 read”后,mcu解析指令参数,读取pc5的电平,将pc5的电平返回到上位机,读取是否为高电平;
④
将外设引脚通过下拉电阻接到低电平信号上;
⑤
上位机发送指令“gpio c5 read”,读取pc5的电平,将pc5的电平返回到上位机,读取是否为低电平;
⑥
如果pc5跟随外部上下拉从高电平变到低电平,说明pc5与外设之间硬件线路的连接是正确的。
14.本方案要能够实施,需要在上位机和嵌入式硬件之间,有一个可以通信的硬件接口将它们相连。而这个条件一般情况下都容易满足,大多数嵌入式产品的硬件都会预留uart串口,用于产品固件调试和日志输出。而有些情况下,产品上可能还会有usb,网口等。只要有一个能够正常工作的通信接口,本方案就能够运行。以下的讨论中,我们以uart串口为例进行详细介绍。
15.由于产品功能的差异,嵌入式硬件系统往往会有很大的差异。为了方便下文的讨论,我们统一将他们看作是mcu最小系统+外部功能模块组成。外部功能模块一般由功能各异的芯片以及其外围电路构成,与mcu之间一般会有通信接口、控制信号以及反馈信号等相连。
16.图2中,pcm1840是一款高精度音频adc芯片,它的通信接口兼容tdm和i2s,同时它有较多的控制信号,通过设置合适的高低电平,芯片就可以工作在需要的模式上。此外,该芯片要能够正常工作,还需要提供正确的供电,以及将外部音频信号正确接入到对应的输入接口上。但在本文讨论的硬件功能验证中,供电和信号接入所涉及的电路,硬件工程师可以单独完成调试和验证,而通信接口以及控制信号与mcu之间的连接是否正常,是我们所要解决的技术问题。
17.通过本方案进行相关的功能验证时,上位机与mcu的指令交互过程如下图3所示。
18.其中上位机部分,运行一个串口调试软件,可以使用开源软件putty,也可以是其他串口调试工具。如果产品使用其他接口进行通信,则需要使用对应的上位机软件。只要上位机软件能够操作对应的通信接口,将正确的命令发送给需要调试的嵌入式硬件系统,同时能够显示产品返回的处理结果就可以。
19.在被测系统的mcu中,需要运行一个简单的固件,实现对上位机发送的命令的接收和解析,并根据命令要求,将对应的gpio口设置为输入或输出。
20.在以下的讨论中,我们使用了这样一套操作指令:具体实施过程中,具体的指令可以是其他格式,只要通过这套指令能够设置任意指定的gpio输入输出状态以及读取gpio电平,都适用于本方案。
21.具体实施过程中,具体的指令可以是其他格式,只要通过这套指令能够设置任意指定的gpio输入输出状态以及读取gpio电平,都适用于本方案。
22.在上位机和mcu固件准备好以后,我们就可以利用这套方案,对产品硬件进行快速
功能验证。
23.实施例一如图4所示,eeprom at24c02通过i2c接口与mcu stm32f103相连,分别连接到了pc11和pc12两个引脚上。对于此类通信接口的验证中,我们直接控制mcu将对应的gpio分别输出高和低,然后通过检测相应的硬件检测点,确定其对应的连线上同步出现了高电平和低电平,即说明硬件连接稳定可靠,功能正常。通过如下操作即可完成验证:1、上位机发送指令“gpio c11 out 1”,设置pc11输出高电平;2、用万用表测量at24c02 的sda引脚电压是否为高;3、上位机发送指令“gpio c11 out 0”,设置pc11输出低电平;4、用万用表测量at24c02 的sda引脚电压是否为低;5、如果at24c02 的sda引脚电压跟随指令从高变为低,说明pc11与at24c02 之间硬件线路的连接是正确的。
24.实施例二如图5、图6所示,我们需要验证pcm1840的控制引脚msz是否和mcu stm32h743正确连接,则可以通过如下指令完成验证:1、上位机发送指令“gpio c12 out 1”设置pc12输出高电平;2、用万用表测量pcm1840的msz引脚电压是否为高;3、上位机发送指令“gpio c12 out 0”,设置pc12输出低电平;4、用万用表测量pcm1840的msz引脚电压是否为低;5、如果pcm1840的msz引脚电压跟随指令从高变为低,说明pc12与pcm1840之间硬件线路的连接是正确的。
25.实施例三如图7所示,ad7768-4是同步采样adc芯片,该芯片的引脚定义为输出,在其完成模数转换时会输出高电平,mcu可以使用该信号及时读取adc采样数据。为了验证它与mcu pa4是否正确连接,可以使用如下方法:1、上位机发送指令“gpio a4 in”,设置pa4为输入模式。
26.2、上位机发送指令“gpio a4 read”,读取pa4的输入电平。
27.3、 用万用表测量引脚电平,如果上述指令读到的电平与实际电平不吻合,则说明pa4与之间的硬件连接存在问题;如果吻合,则可能需要进一步验证,可以在后续的产品功能验证中进一步确定。
28.当然,对于此类信号,如果能够让芯片稳定输出高和低两种不同的电平,则可以多次调用读取指令,来确定硬件连接的正确性。
29.此外,还存在另外一类硬件线路,它也将mcu的gpio连接到外部芯片的引脚上,但外部芯片作为输出,完全由芯片控制输出高和低。此类线路,不建议用上述方法进行验证,因为mcu强行输出的话,可能和芯片功能冲突,造成芯片功能损坏。
30.虽然本发明的实施例是以实际方案来描述的,但是并不构成对本发明含义的限制,对于本领域的技术人员,根据本说明书对其实施方案的修改及与其他方案的组合都是显而易见的。
技术特征:1.一种硬件线路正确性的快速验证方法,该方法需要使用到上位机、硬件通信接口以及嵌入式硬件,所述嵌入式硬件包含mcu及与所述mcu连接的若干个外设,所述上位机通过硬件通信接口与所述mcu连接,其特征在于:所述一种硬件线路正确性的快速验证方法用于检测检测mcu与外设之间硬件线路是否连通,该方法包括如下步骤:a、上位机发送指令后,mcu解析指令参数,将某一引脚pb设置为输出或输入状态;b、当引脚pb设置为输出状态时,用万用表测量与所述引脚pb相连的外设引脚的电压是否与引脚pb的电压一致;c、当引脚pb设置为输入状态时,与所述引脚pb相连的外设引脚上拉电阻接到高电平信号上或下拉电阻接到低电平信号上,用万用表测量与所述引脚pb相连的外设引脚的电压是否与引脚pb的电压一致;d、如果引脚pb跟随外设引脚电平始终保持一致,说明引脚pb与外设之间硬件线路的连接是正确,否则为不正确。2.根据权利要求1所述的一种硬件线路正确性的快速验证方法,其特征在于:当mcu的引脚无论作为输入还是输出,都不会损坏硬件电路时,所述一种硬件线路正确性的快速验证方法用于检测检测mcu与外设之间硬件线路是否连通,该方法包括如下步骤:a、上位机发送指令后,mcu解析指令参数,设置某一引脚pa输出高电平;b、用万用表测量与所述引脚pa相连的外设引脚的电压是否为高;c、上位机发送指令后,mcu解析指令参数,设置某一引脚pa输出低电平;d、用万用表测量与所述引脚pa相连的外设引脚的电压是否为低;e、如果外设引脚的电压跟随指令从高变为低,说明所述引脚pa与外设引脚之间硬件线路的连接是正确的,否则为不正确。3.根据权利要求1所述的一种硬件线路正确性的快速验证方法,其特征在于:当mcu的引脚作为输出可能会损坏硬件电路时,将mcu的引脚设置为输入,所述一种硬件线路正确性的快速验证方法用于检测检测mcu与外设之间硬件线路是否连通,该方法包括如下步骤:a、上位机发送指令后,mcu解析指令参数,设置某一引脚pc为输入模式;b、将与引脚pc连接的外设引脚通过上拉电阻接到高电平信号上;c、上位机发送指令后,mcu解析指令参数,读取引脚pc的电平,将引脚pc的电平返回到上位机,读取是否为高电平;d、将与引脚pc连接的外设引脚通过下拉电阻接到低电平信号上;e、上位机发送指令,读取引脚pc的电平,将引脚pc的电平返回到上位机,读取是否为低电平;f、如果引脚pc跟随外设引脚从高电平变到低电平,说明引脚pc与外设之间硬件线路的连接是正确,否则为不正确。
技术总结本发明公开并提供了一种硬件线路正确性的快速验证方法,使得在前期可以对硬件进行全面的功能验证,使硬件可以快速迭代并稳定,后续软件的验证可以在相对稳定的硬件上进行,大大缩短了产品功能验证阶段。本发明包括如下步骤:上位机发送指令后,MCU解析指令参数,将某一引脚PB设置为输出或输入状态;如果引脚PB跟随外设引脚电平始终保持一致,说明引脚PB与外设之间硬件线路的连接是正确,否则为不正确。本发明应用于嵌入式产品的硬件线路正确性的快速验证方法的技术领域。快速验证方法的技术领域。快速验证方法的技术领域。
技术研发人员:张国富 张雯艺
受保护的技术使用者:成都市运泰利自动化设备有限公司
技术研发日:2022.09.29
技术公布日:2023/1/6