基于Linux和Qt5的简易平板的设计与实现

主要研究内容是与linux和qt5有关,通过对linux系统的移植掌握uboot编译,linux内核裁剪,文件系统挂载等相关操作,还熟悉驱动的挂载和卸载,设备树的编写等。
通过编写qt5应用程序,了解c++语言编程,明白槽和信号的运行机制,熟悉各个模块之间的调用关系。
通过对整个系统从硬件到软件的设计,了解产品开发的大致流程。
本系统分为硬件部分设计,系统部分设计,应用部分设计三大部分。硬件部分设计包括从器件选型开始,主控芯片,屏幕,扬声器,电池管理等,再到原理图绘制,pcb布局布线,嘉立创打板,焊接等一系列流程。
系统部分设计包括交叉编译器安装,uboot移植,linux内核裁剪编译,文件系统裁剪挂载,tslib移植,mplayer移植,qt移植,驱动程序移植,驱动程序编写,脚本语言编写等。
应用部分包括视频播放,音乐播放,照片播放,查看日期时间,查看天气,查看温湿度,查看设置,阅读电子书,使用记事本,使用计算器,玩nes游戏等。
通过对这三大部分的设计,完成一个具备平板部分功能的设备。
设计分析
1.硬件电路设计分析
硬件电路设计主要分为好几个模块进行开发,这样开发的好处就是模块之间可以组合使用,在后续开发别的产品时能充分利用。
大致可以分为四个模块:
主控核心板
主控底板
充放电管理模块
串口调试模块
充放电管理模块主要就是负责电池管理,充电,放电,电池保护等。
串口调试模块主要在开发阶段使用,通过打印信息到pc终端可以对设备软件部分进行开发,调试,设计完成之后就不需要了。
主控核心板主要是主控和其外围电路,构成一个最小系统,单个主控板就可以使用,可以随意的扩展底板,做音乐播放器,做网络摄像头,做语音助手都可。
主控底板就是简易平板的核心外围器件,主要有耳机接口,功放芯片,时钟芯片,屏幕接口,触摸接口,wifi模块,震动马达接口,麦克风,一键开关机电路,陀螺仪芯片,温湿度芯片,led和少许按键等。
通过这些外围器件构成简易平板和外界进行信息交换的渠道。
2.系统移植设计分析
这一部分是核心部分,也是最为复杂的部分,但又是最容易使用的部分,因为这部分一般都是芯片原厂开发,然后提供给用户使用。
也就是说关于这部分是可以通过简单配置直接使用的。
首先就是uboot编译,uboot是一段启动代码,和芯片底层进行打交道,包括系统时钟配置,ddr初始化等一系列操作。
uboot启动之后会进行设备树和linux内核加载,需要我们移植linux内核,linux内核整个十分庞大,我们只需要移植需要的部分,也就是需要进行内核裁剪,裁剪编译之后我们就需要挂载文件系统,文件系统是后续文件存储的部分,也是直接接触的部分。
关于文件系统有好几种选择,可以选择最小文件系统,只有十几mb大小,也可以选择debian系统,分为带桌面和不带桌面的。
文件系统的编译,也有好几种方式,本系统采用buildroot进行编译最小文件系统。
3.驱动开发设计分析
在前面我们进行了硬件开发和系统移植,接下来就进行驱动开发,这部分主要就是对硬件设计部分进行开发,用设备树进行引脚功能定义,用linux内核进行驱动开发,可以编译成ko模块加载,也可以直接编译进内核,直接编译进内核之后,上电会自动加载。
需要进行驱动开发的有以下器件。
wifi模块驱动开发去进行联网,时钟模块驱动开发进行时间显示,温湿度模块开发进行温湿度获取,震动马达驱动开发去控制马达震动,触摸驱动开发去使能屏幕触摸效果,一键开关机电路驱动开发实现开关机,按键开发进行音量设置,还有以太网驱动开发,rgb屏幕驱动开发,麦克风驱动开发等。
通过编写驱动程序,简易平板就可以和外界进行信息交换,为后面应用开发做准备。
驱动开发是最为复杂的,最容易出错的,最费时间的,最不容易找到问题的。
4.应用开发设计分析
驱动开发之后,说明本设计已经具备和外界进行信息交换的能力,但具体如何去做,需要去进行应用开发。
应用开发也就是在linux系统上使用系统应用函数api去和硬件驱动打交道。
本系统设计的是简易平板,肯定要实现平板所能做的一些事情,视频播放,音乐播放,图片播放,温湿度获取,天气查询,阅读电子书,查看时间,查看日历,记事本,nes游戏,屏幕背光调节,手电筒等。
应用程序通过qt5进行编写,qt是一个可跨平台的,灵活性高的开发软件,简单好移植,可以很好的应用在嵌入式设备上。
5.3d外壳设计分析
在设计的最后阶段,要进行简易平板的包装,不能给用户一个裸板去使用。
用立创eda专业版进行3d外壳的设计,操作简单,并且可以在绘制完电路板之后直接在画的pcb文件中进行设计,不用pcb设计软件和3d建模软件之间来回切换,大大节省了开发时间。
3d外壳设计的时候要注意几个点,首先要保证散热,不能全封死,对于按键,sd卡槽,usb接口,耳机口这些要进行开槽处理,屏幕部分可直接包住,屏幕外边框不显示。
设计框图
1.整体设计框图
该框图介绍了整体设计的思路,先从硬件电路出发,经过系统移植、驱动开发、应用开发和3d设计的操作,一步一步介绍构造简易平板的全过程。
2.硬件电路设计框图
该框图介绍了简易平板的硬件构成,包括一些器件的选型和对应功能电路,比如一键开关机、耳机功放切换电路等,可见设计一个产品需要包含很多的器件。
3.系统移植设计框图
该框图介绍了简易平板的系统移植,从三个方面出发,uboot移植,linux内核裁剪到最后的文件系统编译,介绍了linux系统硬件平台的系统层面的基本操作。
4.应用开发设计框图
该框图介绍了简易平板的应用app,可以直观的看到简易平板开发了丰富的应用程序,这些基本的应用程序可以满足日常的需求,介绍了一个产品需要众多软件的支持。
硬件设计
1.核心板介绍
核心板设计大小为3cm * 5cm,采用四层板进行设计。
核心板设计的目的是为了方便扩展,主要是构建基于主控的最小系统,单核心板就能够运行。
核心板设计硬件包括全志的v3s主控芯片,以及一些v3s的外围电路,晶振,复位等,还使用了一个dcdc芯片ea3036可提供3路电源,用来给v3s提供电源。
和底板连接接口使用mini pcie接口,mini pcie可以引出56个引脚,核心板上引出rgb屏幕的fpc排座,这样去掉rgb屏幕的引脚,剩下的引脚基本上可以全部引出。
核心板还板载了一颗w25n01gvzeig存储芯片,可用来存储系统,然后不需要sd卡运行启动。
2.底板介绍
底板设计大小为7.6cm * 10cm,采用两层板进行设计。
底板设计的主要功能就是构造简易平板所需的功能,包括一键开关机电路,电池接口,rtl8723bs wifi蓝牙模块,耳机,8002b功放芯片,ds3231时钟芯片,sht30温湿度芯片,mpu6050陀螺仪芯片,震动马达接口,sd卡接口,音量加减键,关机键,复位键,还板载了rgb屏幕背光电路等。
通过底板上这些器件的运行可以保证实现本系统所需要的功能。
3.硬件电路原理图分析
1.全志v3s主控芯片原理图设计
本系统使用的主控芯片是全志的v3s,是arm cortex-a7架构,主频最高支持1.2ghz,空载运行电流 90~100ma,满载运行电流~180ma,集成 64mb ddr2,可从8~32mb spi nor flash、128mb nand flash和sd卡等设备启动。
有一个rgb666屏幕接口,支持常见的 272x480, 480x800,1024x600 等分辨率。
拥有一路100m ether接口(含 ephy),一路otg usb接口,两路speaker接口和一路mic接口等资源,非常适合开发多媒体设备,满足简易平板的应用需求。
2.ea3036电源芯片原理图设计
本系统使用的电源芯片是一款dcdc器件,型号为ea3036,ea3036采用20针qfn 3x3封装,ea3036支持2.7-5.5v范围输入,0.6v参考电压。
ea3036为三路输出,每路输出可实现2a持续输出能力,并提供独立的使能端进行电源管理和上电时序控制。本系统的三路电源输出分别为1.2v、1.8v和3.3v。
3.rgb屏幕接口原理图设计
这款芯片自带有rgb666的接口,所以可以驱动rgb的屏幕。
rgb666表示数据有16位,分别是r6位,g6位,b6位,这些都是数据线,另外还有行同步信号,列同步信号,时钟信号等。
rgb屏幕是一个通用接口,是市面上最为常见的屏幕之一,应用非常广泛。本系统原理图画的是正点原子的屏幕接口,并且带电容触摸。
4.mini pcie接口原理图设计
本系统是设计为核心板加底板的方式,那必然核心板上要留出接口。
关于接口,前期也了解很多,比如排针,btb连接器,ddr,m.2,mini pcie等等。
最终选择了mini pcie,因为mini pcie的引脚个数正好合适,间距为0.8mm,而与之相似的m.2的间距为0.5mm,pcb绘制的时候不好连线。
经过层层考虑,最终选择了mini pcie接口进行核心板与底板的连接。
5.pt4103b23f升压芯片原理图设计
pt4103是一款升压型dc/dc转换器,设计用于从单电池锂离子电池以恒定电流驱动多达8个串联的白色led。
由于pt4103直接调节输出电流,因此它非常适合驱动发光二极管(led),而rgb的屏幕背光正好是多个led进行连接,这款芯片用来驱动背光再好不过。
6.rt9193稳压芯片原理图设计
rt9193是一款ldo芯片,输出电压为3.3v,选择封装为sot-23-5,非常小巧,并且外围电路也不多,容易嵌入到系统板上。
rt9193提供了稳定可靠的电源,只要输入电压在一定的范围内,输出电压永远保持在3.3v。
7.一键开关机原理图设计
生活中的便携式电子产品都具有开关机按键,比如手机电源键就是一种非常典型的一键开关机,长按开机,长按关机。
除了手机以外的其它电子产品,也可以使用这种方法,给用户良好的体验。
本系统就是基于用户体验的角度,在系统底板上加入了一键开关机电路,方便用户对简易平板进行操作。
8.ds3231时钟原理图设计
ds3231是一款精度很高的实时时钟芯片,内置自动补偿电路。
可以自动调整月份和日期,还有闰年补偿功能,时钟的工作格式可以有两种模式,24小时模式或者12小时模式。
ds3231内部集成了可编程的闹钟,并且支持两路,ds3231这个实时时钟不仅可以提供准确的走时而且还能保持断电走时,极大保障了系统时间的准确性。
9.麦克风原理图设计
全志v3s集成了音频adc,可以外接一个麦克风,通过麦克风可以获取外界的声音,然后存储起来,可以实现录音的功能。
还可以开发软件部分,使其支持语音识别,可以实现语音助手的功能。
10.耳机和8002b功放原理图设计
全志v3s不仅支持音频adc,还支持播放音频,可以接一路耳机,有左右双通道。
虽然插上耳机就可以播放音频,但毕竟还是需要有耳机才能播放。
在设计上加入一个功放芯片8002b,通过功放外接一个喇叭就可以支持声音外放。
而且设计过程中对耳机和功放部分做了处理,使插上耳机的时候耳机播放,不插耳机的时候就外放。
11.rtl8723bs wifi蓝牙原理图设计
rtl8723bs是一款小尺寸,小巧的wifi + bt组合模块,电路板尺寸为12mm * 12 mm,高度为1.6mm。
常适合平板电脑,超极本,移动设备和消费类产品。
它提供用于wifi的gspi/sdio接口与主机处理器连接以及用于bt的高速uart接口,wifi的吞吐量理论上可以达到150mbps。
本系统设计模块的初衷就是为了方便联网,毕竟作为一个移动设备,不可能一直插网线这种方式,并且这款模块还支持蓝牙,相当于一个模块就继承了wifi和蓝牙,非常适合本系统。
12.mpu6050陀螺仪原理图设计
mpu6050是一款陀螺仪芯片,内置陀螺仪和加速度计,可以通过检测当前的姿态来判断当前的平板的姿态位置。
本系统设计的目的是为了实现重力感应,自动翻转屏幕,充当计步器等功能。
13.sht30温湿度原理图设计
sht30是一款温度和湿度传感器。它的封装为dfn-8,封装外形为2.5mm * 2.5mm,同时保持0.8mm的高度,这意味着可以将它集成到多种应用中。
本系统设计的目的是为了能够实时获取外界环境的温度和湿度,给用户一个直观的体验。
14.震动马达原理图设计
震动马达是一个可以发生震动的器件,通过一个三极管就可以驱动。
诸如手机一样,当设置为震动模式的时候,不会发出声音,但是手机本身发出震动。
本系统就是基于这样的设计思想,当简易平板设置为震动模式的时候,一旦有外界消息震动马达就会发出震动,以提醒用户及时查看消息。
pcb分析
1.核心板pcb分析
核心板pcb为四层板,最小线宽为4mil,是嘉立创四层板所支持的最小工艺。
整体设计为两面都有器件,因为核心板只有设计的比较小,才能更方便的集成到应用中去。
正面放置ea3036 dcdc器件,主控芯片v3s,和rgb屏幕接口fpc,fpc放到正面是为了方便后续接屏幕。
背面大多是一些电容电阻和一个w25n01gvzeig备用,w25n01gvzeig默认是不焊接的。
在内层1对电源进行了分割,主要有vbus,1v2,3v0,3v3等。
在内层进行电源分割,不仅方便布线,还增强系统的可靠性。
2.底板pcb分析
底板pcb为两层板,最小线宽为6mil,嘉立创双面板线宽最小支持5mil。
整体设计为只有背面有器件,因为正面是把整个屏幕贴上去,这个在设计的时候需要考虑屏幕的排线,在对应的位置进行开槽处理,方便排线连接。
还有就是电源开关和音量开关的位置要放在合适的位置,方便我们去操作。
还有type-c接口、麦克风、耳机口,sd卡槽的位置等都需要去考量;屏幕fpc的位置要和核心板上fpc接口是顺的,也就是fpc排线连接是顺的,不能交叉打结。
mpu6050的位置最好放到板子的正中间,这样测量结果是最正确的。rtl8723bs的天线部分不要覆铜。
测试效果
1.主界面测试
主界面是程序启动就进入的界面,里面罗列了十几款app应用,可滑动翻页,点击对应的app图标会进入到对应的app应用界面。
2.音乐播放测试
音乐播放界面实现了歌词根据进度条滚动显示,有可暂停、可上一曲,可下一曲等功能,会显示当前播放进度和总进度时长,可滑动滚动条跳转音乐播放进度。
3.电子书测试
电子书分为两个界面,点击电子书图标会进入书架界面,会列举当前文件中的书籍信息,选择对应的书籍可以进入阅读界面,在阅读界面可以修改背景颜色和文字颜色等。
4.天气预报测试
点击天气图标会进入到天气查询界面,输入对应的城市名点击查询按钮,即可显示当前的温度和风向等信息,在最下面还会有温馨提示。
点击左上角的切换按钮可以查看未来几天的天气情况,提醒注意防护。
5.计算器测试
点击计算器图标会进入到计算器界面,里面有一张背景图片和按钮形成对比,方便使用按钮进行操作,支持连续加减乘除运算,计算结果大字显示,方便获取。
6.设置界面测试
点击设置图标会进入到设置界面,在设置界面可以设置wifi,蓝牙,声音,显示,日期等操作,点击关于选项会进入关于界面显示一些系统的内存大小,版本等信息。
结论
本文主要介绍了简易平板的设计与实现,该系统从硬件设计开始,经过系统移植,驱动开发,应用开发,外壳设计等操作,已经涵盖了一个产品从设计到生产的基本过程。
硬件设计也是很有门道的,稍微有一点地方不对,就需要重新打板子。
本系统从设计开始到最后的成品,一共做过两块开发板、三块核心板和三块底板,相当于光板子就做了八块,其中多次涉及两层板和四层板,还包含电源分割和一些常规的注意事项。
通过设计本系统,可以加强对硬件设计部分的基本操作,可以熟练进行pcb设计。
系统部分主要涉及linux系统的知识,通过对uboot、linux内核和rootfs的编译,熟练配置交叉编译器,了解makefile的执行机制和编程规范,能对.config文件进行修改和添加。
驱动开发主要操作是对硬件底层的操作,需要看懂器件的使用手册,能用通信协议驱动器件,知道如何用设备树去配置引脚,如何灵活的使用驱动框架等。
应用开发主要涉及qt知识,能熟练使用c++编程语言,明白信号和槽的机制,会一点ui设计,能对图片进行基本处理等。
外壳设计主要是对一些3d图形进行处理,能熟练对pcb进行外壳设计,知道如何开孔,如何设置固定孔等。
通过对本系统进行设计,可以掌握很多知识,对于自身能力也是一种提高。
在本课题简易平板的设计与开发的过程中查阅了很多相关资料,提供了很多的思路,也借鉴了其中设计好的部分。
本系统基于linux和qt5进行开发设计,操作系统加ui的设计方向是移动设备的一种常规操作。
只有每一步都设计合理,最后的成品才会实现它应有的功能。
虽然本系统设计的时间周期很长,但由于所涉及的知识庞杂,需要开发的内容较多,设计过程中难免会有设计缺陷和功能不完善之处,希望多多指正。
在后续的时间里,还会继续开发一些功能和修改一些缺陷,使功能更加完善,系统更加健全。


BAT走过的自动驾驶之路大盘点 百度靠以下这几点领先
射频前端挑战渐增,Qorvo见招拆招
浅谈新能源汽车标准化难题困扰换电模式
虹科干货 | AR眼镜单、双目选哪个好?技术工程师资深经验分享!
马斯克最新消息 马斯克重申特斯拉将取消实体后视镜 马斯克回应被指叛国
基于Linux和Qt5的简易平板的设计与实现
亚马逊云科技结合大语言模型和自然语言问答,加速的数据决策
Modbus转Profinet网关在立体仓储系统里的应用
借助监测系统/认证,升级智能电网计量/安全性能
分析师预计华为的5G基站相关的业务可以支撑数年之久
一文详解接触器自锁停止电路
Bitdb 2.0程序可查询BCH区块链的每一笔交易
如何区别INS和IMU的区别呢?
板对板连接器的发展趋势
红苹果PE90FH高清数字矩阵的功能特点及应用
双层次能源联络线结构的构建方法是什么?它的特点是什么?
100年发电机组还正常运转?
详细解析为超级电容增加化学储能(一)
步进电机的电流设定和细分设定
如何让自动驾驶汽车足够的安全上路