#第六届立创电赛#PC性能监视器 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 #第六届立创电赛#PC性能监视器

  • 9.5k
  • 16
  • 54

暂无简介

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2021-05-21 19:36:45
更新时间: 2023-03-29 16:59:59
描述
## 1.项目功能介绍 本项目实现了一个可以实时监控电脑状态的硬件设备。它拥有一块4.3寸的LCD彩色显示屏,可以实时监视CPU、内存、硬盘、显卡的实时状态,方便掌握电脑主要硬件的负载。既适合游戏玩家了解系统的瓶颈所在,也适合用来观察是否有非法的后台程序在长期占用电脑的资源(比如挖矿类木马程序)。 同时,本项目也适合作为机箱美化的副屏使用。本项目使用的是上位机配合串口通讯的解决方案,仅需一根TYPE-C连接线就能工作,对比市场上现有的HDMI接口的小型显示屏+AID64之类的系统监控软件的解决方案,本项目拥有成本低廉,系统资源占用小,方便灵活的优点。市场上的HDMI方案虽然通用性强,但是作为副屏时一方面会浪费一个HDMI接口加一个用于供电的USB接口,另一方面还会加大显卡的压力,浪费系统性能。 最后,因为整个系统的性能冗余比较充足,所以在开发者手中,本项目也可以作为一款开源的嵌入式GUI开发平台来使用。 **本项目硬件部分100%使用立创EDA进行设计。** **因为本项目软件、硬件完全开源,可以随意浏览、下载本项目资源,或在此基础上进行二次开发。但是禁止商用** ![image.png](//image.lceda.cn/pullimage/WzOp2JOmfqisCo3PT8ehdaC3jcdb4mK1g9Gkj31d.png) ## 2.项目属性 本项目为首次公开,为本人原创项目。项目未曾在别的比赛中获奖。 ## 3.开源协议 本项目完全开源,包括PC端的上位机代码和MCU端的代码。使用GPL3.0协议分发。禁止商用。 ## 4.硬件部分 ### 显示系统 首先是面子问题。出于实用性,我们需要尽量在一个屏幕上显示更多的内容,所有我们不能使用过于小型的屏幕。但是屏幕太大也不好,太大的屏幕一方面会增加DIY的难度,提高整个系统的制作成本(屏幕的费用,PCB打样的费用,控制系统的费用等等),另一方面,也会造成桌面空间的浪费,做为机箱副屏使用时也会降低对机箱的兼容性。经过综合考虑,我选择了通用的4.3寸分辨率为480x272的LCD显示屏,面板材质为TN,硬件接口为RGB: ![image.png](//image.lceda.cn/pullimage/DD5W2mYaCF8ebyYAAnqM9h2lHCo0vUKqjGoDvJNS.png) 此类显示屏是事实上的商业显示屏标准,在市场上很容易买到,价格也十分低廉。甚至可以从各种报废的设备中拆解得到(如各种媒体播放器设备)。 480x272的分辨率虽然不高,但是在本系统中已经够用。4.3寸的大小,使得驱动板打样的费用非常便宜,同时在保证显示足够内容的基础上不会显得太大或者太小。 由于此类显示屏使用的是恒流背光系统,所以我们需要一个恒流的背光驱动电路。在此,我选择了PT4103这款LED恒流驱动IC。PT4103是一款升压型的LED恒流驱动IC,拥有开路保护的功能,同时支持PWM调光,而且在3.3V的系统中即可正常工作,可以完全满足本项目的需求。 关于驱动电流的选择,我并没有按照屏幕数据表上的设定使其工作在20mA,而是设定为10mA,这可以保护背光,同时减小整个系统的功耗。经过测试,10mA和20mA的背光亮度区别并不大。但是如果你在自己制作时使用了IPS屏幕,则应该使用标准的20mA驱动电流。 ![image.png](//image.lceda.cn/pullimage/Wmf7G9NFIsjv5MSp4juGOiwwD1O5v6m6VbNAZjbj.png) ### 控制系统 由于屏幕使用的是RGB接口,而且对于嵌入式系统而言,这个屏幕的分辨率已经不低了。所以为了驱动这块儿屏幕的同时保证整个UI系统的流畅性,我们需要一款性能较高的MCU。由于本项目立项时,全世界的范围内正处于“缺芯”状态,各种型号的MCU不是没货就是价格大涨。经过综合的权衡后,这里选择了STM32F746ZG这款MCU作为整个控制系统的核心。此MCU带有LTDC控制器,可以非常方便的驱动RGB接口的显示屏。同时该MCU还带有DMA2D加速器,可以对UI系统的绘制提供加速,保证界面的流畅性。另外,由于该MCU相对比较冷门,所以价格还算可以接受。 ![image.png](//image.lceda.cn/pullimage/TG9W9AQcjzxI00VIj6ILVzjCXi6sOiwkUPJZWy0A.png) 由于F746ZG的定位是经济型MCU,所以内部的SRAM无法满足屏幕的显存需求,所以这里还添加了一颗型号为W9825G6KH的SDRAM作为系统显存使用。实际制作时,任何容量在8M以上,速度在108MHz以上的SDRAM都可以满足需求。 ![image.png](//image.lceda.cn/pullimage/ak6GSRydyCpaVpGif81YEKdexGOcT0z44AcnQXj5.png) 本项目使用MCU的内置Flash即可满足所以代码+资源文件的存储,但是为了后期的功能扩展,额外预留了NOR Flash的扩展电路。如果不需要进行高级功能的开发,此部分可以省略: ![image.png](//image.lceda.cn/pullimage/FbX4BDuuc7MQVerVNwsfftkoRawh6acU3gjXo6HD.png) ### 通讯系统 为了与上位机通讯,我们需要一款USBUART桥接芯片,在这里,使用经典的CH340E接口芯片即可,便宜稳定性能好。电路中额外设计了一颗RGB灯,可以用来指示通讯状态 ![image.png](//image.lceda.cn/pullimage/PeK0v31WYA42llxwUvvC9SUFxuG0aNHQIVt07f0k.png) 相关电路(为了防止意外的短路或者过载情况,还设计了有一颗自恢复保险丝) ![image.png](//image.lceda.cn/pullimage/5mG7CAbDsPnWsUrbrLkcwAK4ygCPfFXKyTaRSZEl.png) ### 供电系统 整个系统的功耗并不大,所以使用经典的LDO:AMS1117即可满足需求: ![image.png](//image.lceda.cn/pullimage/NB0CIU6bbrkWGdgi9EF5tpoMxK7Okd8FcdoqNhBd.png) ### 外围/IO系统 本系统设计了4个轻触按键用来提供对整个系统的控制,四个按键均为通用,功能由所在的UI界面决定: ![image.png](//image.lceda.cn/pullimage/24sFIAsBJum2R39Xo9pfjACGG8O5Uj3aogCGOGHS.png) RTC晶振和后备电池的设计,保证了电脑在关机的情况下,本设备也可以作为一款桌面时钟使用: ![image.png](//image.lceda.cn/pullimage/AwpO5xV8HxdtyygjLjxMk48yMUeJq3jr7PybjM7L.png) 在早期的设想中,考虑到了高温和高系统占用率下的蜂鸣器报警功能,实际使用中发现,此功能过于鸡肋(且烦人),所以在最终代码中去掉了该功能。但是考虑到未来可能的功能开发,所以相关电路在硬件设计上依然保留: ![image.png](//image.lceda.cn/pullimage/Zu7MIE17CyCJhEPuTxjgyGcRLAqdtrWWnsr31lnE.png) ### PCB设计 为了节省成本,本项目为双层PCB设计,如果你在实际制作时有更多的预算,推荐使用4层板,并且对SDRAM部分走线进行等长处理。 **顶层(背面)** ![image.png](//image.lceda.cn/pullimage/Ee0BoURXBvP7yOYF68K6xZdxl8ZWVAWjo08i9Ne9.png) **底层(正面)** ![image.png](//image.lceda.cn/pullimage/qeDH14cNJg7xvs0ArrQYU8dEufaJKtKmVJKdDGsI.png) **3D模拟图** ![image.png](//image.lceda.cn/pullimage/t1qX9YaU0etuRxoJae1m0yzUTnr9nJkBdF4VM5wT.png) **各部分说明** ![image.png](//image.lceda.cn/pullimage/4uFzpHoGYUsIOuzRcfUZN7iWAMr8a0nLkU4fWzfR.png) ## 5.软件部分 ### MCU端软件开发 本项目使用ST官方推出的免费IDE:STM32CubeIDE配合STM32 HAL库来开发。开发语言为C语言。编译器为IDE自带的GCC编译器。 ![image.png](//image.lceda.cn/pullimage/UkjFJsyd58iXzIUXCfE5V26oNIlMPc8497pJDeeY.png) 相较于Keil,CubeIDE的代码编辑器更为友好,与STM32的配合也更加流畅。 因为本项目牵扯到了与上位机的通讯,所以为了方便开发,使用了开源的FreeRTOS系统框架。系统中设计了UI主线程、通讯线程、按键扫描线程和蜂鸣器控制线程(已废弃,仅为兼容性保留)共四个线程协同完成功能,线程具体信息如下 ![image.png](//image.lceda.cn/pullimage/XmBURxPU1ew2GCTFQblvmaRjQJSHNOLLFVaPfliT.png) UI系统作为下位机开发终点,使用的是开源的LVGL库来实现: ![image.png](//image.lceda.cn/pullimage/4ON8qfZ0NlFFtVcc21TgGjeMNG9DfKwbf54CsslM.png) LVGL是一个强大的嵌入式UI框架,可以在内存不超过1M的嵌入式系统中提供可以媲美手机等高性能移动设备的UI显示体验。 在本项目中,UI系统的结构如下: ![image.png](//image.lceda.cn/pullimage/yN1J72RCcuknVPF9UVvTxR7fLqtetyVPUNC8meLy.png) 其中待机界面为系统上电,但未与PC上位机连接时显示的界面,此时显示内容为时钟。因为大部分的PC主板都可以设计为关机时继续为USB提供电力,所以此功能使得关机后,本设备依然可以作为一个时钟来使用。第一次上电并建立通讯后,会自动从待机界面跳转至概览界面。但是在任何其他界面断开连接进入待机界面后,再次恢复连接时,会自动回到断开连接之前显示的界面。 此界面的壁纸可以在代码中替换。 ![image.png](//image.lceda.cn/pullimage/liN6qyjzB3I8LFksbE7iPMZylHnXSWIKsImSxJIb.png) 在与上位机成功建立通讯后,系统会自动跳转至概览界面,在此界面下,可以用图标的形式同时查看CPU、内存、硬盘和GPU的主要状态,如CPU/内存占用率,硬盘的活动时间比例等。除了待机界面外的所有界面顶端都有一个状态栏。状态栏除了显示对应四个按钮在当前界面下的功能外,还提供了系统时间显示功能(这在运行全屏程序比如游戏时是很有用的)。 ![image.png](//image.lceda.cn/pullimage/UJIdCyi1WlzMVBWFsRJxujZeFa8IixB2UBxUn9Gu.png) 在此界面下,可以选择对应的图表进入详情查看界面,显示关于此硬件更多,更加详细的数据。此处显示了CPU的名称,300秒内的使用率,速度和温度: ![image.png](//image.lceda.cn/pullimage/zWK86A0rTzceGtcfQ7kDOhtXtTrMXohN6WOQKyqw.png) 在概览界面下,也可以进入设置界面,设置屏幕的亮度: ![image.png](//image.lceda.cn/pullimage/d4z7eT4DRXY4VRbS01HSPbVLVlgNcVYl3FaGjXAm.png) ### PC端上位机部分 PC端上位机部分是整个系统的开发最大的难点,因为需要获取硬件的状态并传输至设备端,而读取硬件的信息已经属于比较底层的部分了,操作系统的库中并未显式提供各项操作的API。我并没有类似的开发经验,所以刚开始的时候一筹莫展。在尝试了驱动法、WMI查询法之后,偶然发现了开源的OpenHardwareMonitor项目,这个项目提供了一套方便的,可以访问底层硬件驱动信息的API框架,并且提供了一个示例WinForm程序,这使得开发的难度大幅度下降。 最终,本项目上位机部分使用C#开发,使用OpenHardwareMonitor项目作为底层驱动框架。因为上位机不需要太多的功能,所以在UI框架的选择上放弃了WPF而是使用了经典WinForm框架以最大成都减小系统消耗,加快启动速度,并防止出现监控软件自己占用了太多系统资源的情况。 开发环境使用的是经典的Visual Studio 2019社区版,开发Win上的程序没有比这个更合适的了。 ![image.png](//image.lceda.cn/pullimage/FeLTH1k4DtJC8YJVVzpTMxOtwbml2kbDVeQRteyc.png) 上位机的界面很简单,通过选择设备所在的串口,点击开始服务/停止服务即可。这个界面可以完全隐藏到系统后台中,仅在系统栏中展示。 ![image.png](//image.lceda.cn/pullimage/Nrik95TUq8WO4KyVrabxKFPvudgCK9O83mmSZIov.png) 由任务管理器可以看到,最终的软件运行消耗是非常小的: ![image.png](//image.lceda.cn/pullimage/U1dpTn1ydOHMlDPcGXjBF1wA61HL9lddffTxiVW3.png) **需要注意的是,因为需要访问底层驱动,所以PC端服务的运行需要管理员权限。** ## 6.BOM清单 ![image.png](//image.lceda.cn/pullimage/CR6NuKLcaoTXS8feeTFoT6Qr1EwS5JwhGb69abNV.png) ## 7.大赛LOGO验证 ### 空板 ![image.png](//image.lceda.cn/pullimage/Nhr7oARwfH9IFNvmd9GQpnTV6lUQAXXOw2KVqE15.png) ### 焊接成品 ![image.png](//image.lceda.cn/pullimage/5X2pmG4ycvYo1bOaxUiNajvX5UiXg1ACtC2rQwLy.png) ### 更多图片 ![image.png](//image.lceda.cn/pullimage/L1wvz8HnLfVPfELXFZzIuaKcew9VJ2IJ66qwjoq7.png) ![image.png](//image.lceda.cn/pullimage/ySYRJYaT9qDXAlhQNrxqv5as5c4LB07Uv9d3EAjd.png) ## 其他链接 [FreeRTOS - Market leading RTOS (Real Time Operating System) for embedded systems with Internet of Things extensions](https://www.freertos.org/)


[LVGL - Light and Versatile Embedded Graphics Library](https://lvgl.io/)


[Open Hardware Monitor (github.com)](https://github.com/openhardwaremonitor)
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity
1 CR1220 BAT BATTERY-2 1
2 0.1u C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C19,C22,C23,C24,C25,C26,C27,C28,C29,C31,C32,C36,C39,C40,C41,C42 C0402 30
3 20p C15,C16 C0402 2
4 5p C17,C18 C0402 2
5 2.2u C20,C21 C0402 2
6 10uF C48,C46,C47,C38 CAP-SMD_L3.2-W1.6-R-RD 4
7 10uH L1 L0805 1
8 K2-3.6×6.1_SMD NRST KEY-SMD_2P-L6.2-W3.6-LS8.0 1
9 NC R1 C0402 1
10 1k R2,R19 C0402 2
11 0 R3 C0402 1
12 25MHz X1 OSC-SMD_4P-L3.2-W2.5-BL 1
13 32.768KHz X2 MC-306_4P-L8.0-W3.2-P5.5-BL 1
14 STM32F746ZGT6 U1 LQFP-144_L20.0-W20.0-P0.50-LS22.0-BL 1
15 1u C30 C0402 1
16 10k R4,R7 C0402 2
17 W9825G6KH-6 U2 TSOP-54_L22.2-W10.2-P0.80-LS11.8-BL 1
18 GD25Q64CSIGR_C691901 U3 SOIC-8_L5.3-W5.3-P1.27-LS8.0-BL 1
19 10uF C33 C1206 1
20 0.1uF/35V C34 C0805 1
21 10uF/35V C35 C1206 1
22 B5819W_C181206 D1 SOD-123_L2.8-W1.8-LS3.7-RD 1
23 2.2uH L2 IND-SMD_L4.0-W4.0 1
24 FPC 0.5MM 40P Pull type H2.0mm Pick up LCD CONN-SMD_AFC07-S40ECC-00 1
25 10k R5 R0805 1
26 10 R6 R0805 1
27 PT4103B23F U4 SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BR 1
28 FST-9650B-3V BUZZER BUZ-SMD_L9.6-W9.6-LS10.0-R 1
29 47uF C37,C43,C44,C45 CAP-SMD_L3.2-W1.6-R-RD 4
30 0.5A/6V F1 F0805 1
31 LED-RGB-3528 PWD LED 3528-4PIN 1
32 WST3400 Q1 SOT-23-3_L2.9-W1.3-P1.90-LS2.4-BR 1
33 100 R8,R20,R21 C0402 3
34 5.1k R13,R14 C0402 2
35 TS-1010A-B SW1,SW2,SW3,SW4 SW-SMD_TS-1010A-B 4
36 2.54-5P SWD CONN-SMD_2.54-5P-WT 1
37 CH340E U5 MSOP-10_L3.0-W3.0-P0.50-LS5.0-BL 1
38 AMS1117-3.3 U6 SOT-223-3_L6.5-W3.4-P2.30-LS7.0-BR 1
39 TYPE-C-31-M-12 USB USB-C_SMD-TYPE-C-31-M-12 1

展开

工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP