APP下载

基于RT-Thread操作系统的LPDDR4芯片测试系统设计

2020-11-04陈鑫旺马茂松刘建斌

数字通信世界 2020年10期
关键词:线程触摸屏串口

陈鑫旺,马茂松,刘建斌

1 LPDDR4芯片测试

集成电路产业是国民经济和社会发展的战略性、基础性和先导性产业,是培育发展战略性新兴产业、推动信息化和工业化深度融合的核心与基础,是调整经济发展方式、调整产业结构、保障国家信息安全的重要支撑。发展集成电路产业是信息技术产业发展和工业转型升级的内部动力,同时也是市场激烈竞争的外部压力,已上升为国家战略[1]。近几年,随着社交网络的普及和推广,使得智能手机迎来了爆发式发展,游戏、照片、视频等各种应用需要更大容量的存储器和更高带宽的数据传输[2]。LPDDR4(第4代低功耗双倍数据速率动态随机存储器)芯片以其高频率、高带宽、低功耗等特点在智能手机领域被大量使用。因此,设计一种能够在各种SoC系统上对LPDDR4芯片进行各种边界条件下功能性能测试的软硬件系统就变得愈发重要。

LPDDR4 具有小体积和低功耗的特点,通常应用于移动终端。L PDDR4的通信协议是在2014年8月发布的,基本构架从单通道设计改进为双通道的设计,减小了芯片内部的走线距离,通过并行操作提高了运行速率。工作电压降低为1.1V,工作频率最高可提升到2133 M H z( 数据速率为4266 M b/s),带宽为L PDDR 3的两倍。在提升速度和带宽的同时,减少了电量的消耗,ECC技术也是在LPDDR4中引入的[3]。通常情况下,在系统端对LPDDR4芯片进行测试时改变的条件有温度和供电电压。温度调节通过高低温试验箱来实现,测试的温度范围是-10℃至+55℃或者- 40℃至+85℃,这取决于LPDDR4芯片的温度等级以及客户的要求。电压调节是本文的重点,调节范围通常是正常供电电压上下浮动5%。因此,针对LPDDR4芯片在系统上的边界测试就分为高温高压、高温低压、低温高压和低温低压4种。常用的内存测试软件有Memtester、Rebooter、3D Mark等,另外,还可以使用内存眼图工具在各种边界条件下测试LPDDR4 芯片的眼图裕度。

2 LPDDR4芯片测试系统硬件设计

2.1 LPDDR4芯片测试系统

图1是本文提出的LPDDR4芯片测试系统的结构框图。整个测试系统共分为4个模块:SoC及其外设、LPDDR4测试座、电源管理芯片和调压模块。

图1 LPDDR4芯片测试系统结构框图

SoC及其外设里的SoC指能够支持外接LPDDR4 内存的SoC芯片,如NX P公司的i. M X8M系列芯片等。另外,还应该包括能使So C芯片正常运行的外设电路,如EMMC、QSPI Flash、USB模块、千兆网模块、调试串口、时钟芯片和供电模块等。SoC芯片跟LPDDR4芯片之间通过数据总线、命令总线和控制总线等高速并行总线进行互连。

LPDDR4测试座焊接或者安装在测试系统的主板上,可以方便地进行LPDDR4芯片的更换,进行芯片缺陷分析和量产测试。常用的LPDDR4测试座有POGO-PIN技术和导电胶技术。采用POG O- PI N技术的LPDDR4测试座是依靠焊接来固的定在测试系统的主板上,采用导电胶技术的LPDDR4 测试座是依靠螺丝螺帽等金属件固定在测试系统的主板上。根据以往经验,采用导电胶技术的LPDDR4测试座在长时间低温测试后容易出现SoC操作系统不开机的情况,并且不可恢复。所以本文选择的是基于POGO-PIN技术的LPDDR4测试座。

电源管理芯片是指给待测试LPDDR4芯片提供电源的模块。L PDDR 4 芯片共需要3 组电源供电,正常电压分别是VDD1=1.8V,V DD2=1.1V,VDDQ =1.1V/0.6V。这里V D D Q = 0. 6 V仅在LPDDR4芯片处于LPDDR4X模式时使用,此模式在运行时将有更低的功耗。电源管理芯片的输出电压值可以在一定范围内通过I 2C总线来进行调整,在本文中电源管理芯片用于给LPDDR4芯片的VDD1、V DD2和VDDQ供电,其中V DD1电压调整的精度是25 mV,V DD2和VDDQ电压调整的精度是10 mV。

调压模块用于提供人机接口和显示接口,通过ST M 32 单片机里运行的嵌入式软件来调整LPDDR4芯片的V DD1、V DD2和VDDQ的供电电压。另外,调压模块能够接收并执行So C芯片通过串口发送的电压调整命令。

2.2 调压模块硬件设计

图2是调压模块的硬件结构框图。调压模块包括STM32单片机、按键和带触摸屏的液晶屏幕等。

图2 调压模块结构框图

STM32单片机是调压模块的控制核心,它具有外设资源丰富、运行速率较快、学习资料丰富和成本低等优势。通过编写控制软件,能够通过I 2C总线调整电源管理芯片输出给LPDDR4芯片的供电电压;能够接收并执行SoC芯片通过串口发送过来的电压调整指令;能够检测按键电平的变化;能够通过SPI总线来检测触摸屏的动作并进行液晶显示。

按键是用户用于一键恢复LPDDR4正常供电电压的快捷操作,相当于将LPDDR4芯片的供电电压恢复出厂设置。

带触摸屏液晶屏幕一般采用5寸大小,使用SPI总线来进行控制,用于显示当前LPDDR4的VDD1、VDD2和VDDQ电压,用户还可以使用触摸屏来调整这3组电压的大小。

3 控制软件设计

3.1 控制软件总体设计

RT-Thread是一个国产嵌入式实时多线程操作系统,系统完全开源,它不仅仅是一个实时内核,还具备丰富的中间层组件,包括如文件系统、图形库等较为完整的中间件组件[4],学习资料丰富,方便系统裁剪,适用于需要快速进行嵌入式软件开发的场合。

本文在STM 32单片机上采用嵌入式实时系统RT-T h r e a d进行控制软件的开发,多任务同步执行,确保各种外设快速响应任务并稳定工作[5]。

根据项目需求,控制软件共划分为4个线程,分别处理串口通信、按键检测、电源管理、触摸屏和液晶显示。

3.2 控制软件线程设计

串口处理线程用于与SoC芯片进行通信。SoC 芯片作为主动方,STM32单片机作为被动方。SoC发送查询命令,STM32将通过串口将当前的LPDDR4 各组供电电压信息返回;SoC发送设置命令,STM32 收到信息后将修改电源管理芯片配置,以便将LPDDR4的供电电压调整成SoC设置的电压值。

按键处理测线程用于快速将LPDDR4芯片供电电压调整为正常电压(VDD1=1.8 V,VDD2=1.1 V,VDDQ=1.1 V/0.6 V),相当于恢复出厂设置的功能。

触摸屏和液晶显示线程使用SPI总线来设置液晶的显示内容,并能够读取触摸屏的动作信息,用于调整LPDDR4芯片的3组供电电压。

电源管理线程使用I2C总线来查询和设置电源管理芯片,用户可以通过SoC的串口、按键、触摸屏这三种方式来调整LPDDR4的供电电压。

本文声明了一个名叫voltage的结构体,如下面代码所示,vdd1、vdd2和vddq这三个成员变量的单位是毫伏。然后声明了一个voltage结构体类型的全局变量来记录LPDDR4的供电电压,记为lpddr4_ vol。液晶屏显示的内容仅根据此变量来决定。

全局变量lpddr4_vol是整个控制软件里的公共资源,可以互斥地通过SoC的串口、按键、触摸屏这三种方式进行修改,这里用到了RT-Thread操作系统的信号量。信号量是一种轻型的用于解决线程间同步问题的内核对象,线程可以获取或释放它,从而达到同步或互斥的目的。串口处理线程、按键处理线程、触摸屏和液晶显示线程这三个线程通过先申请并获取到信号量sem,然后才能够访问和修改全局变量lpddr4_vol的内容。某个线程访问和修改全局变量lpddr4_vol完毕后,应该及时释放信号量sem,以便其他的线程可以拥有lpddr4_vol 的使用权。类似的,电源管理线程也需要获取到信号量sem,才能根据lpddr4_vol的内容去更新电源管理芯片的三组输出电压值,达到调整LPDDR4芯片供电电压的目的。本文中三个可以调整电压的线程通过操作系统的消息队列来将电压调整命令传递给电源管理线程。消息队列是RT-Thread操作系统中一种常用的线程间通信方式,是邮箱的扩展。消息队列能够接收来自线程或中断服务例程中不固定长度的消息,并把消息缓存在自己的内存空间中。其他线程也能够从消息队列中读取相应的消息,而当消息队列是空的时候,可以挂起读取线程。当有新的消息到达时,挂起的线程将被唤醒以接收并处理消息。消息队列是一种异步的通信方式[4]。本文中涉及到的串口处理线程、电源管理线程的程序流程图如图3所示。按键处理线程、触摸屏和液晶显示线程的流程跟串口处理线程类似,这里就不再赘述。

图3 控制软件程序流程图

4 结束语

本文针对LPDDR4芯片系统测试的实际需求,提出了低成本的实现方案。该方案可以很方便地移植到不同的支持LPDDR4内存的SoC芯片系统上,能够快速进行LPDDR4芯片的更换和测试,不仅提升了用户体验,还能极大的节约测试设备维护成本和人力成本。

猜你喜欢

线程触摸屏串口
实时操作系统mbedOS 互斥量调度机制剖析
2.5D触摸屏盖板玻璃翘曲控制技术
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
基于国产化环境的线程池模型研究与实现
浅析投射式多点触控电容触摸屏
皮肤“长”出触摸屏
船舶电子设备串口数据的软件共享方法
计算机中的多线程问题