基于内存映射的串行输入并行输出LED控制装置及方法

文档序号:30580284发布日期:2022-06-29 11:48阅读:210来源:国知局
基于内存映射的串行输入并行输出led控制装置及方法
技术领域
1.本发明属于数据通信技术领域,具体涉及一种基于内存映射的串行输入并行输出led控制装置及方法。


背景技术:

2.在超过24个串口转tcp/udp的服务器上,当每个串口同时收发数据时,能实时同步让48个led指示灯闪烁,指示数据的收发情况。由于服务器本身使用了24个串口,不管使用哪种总线对接串口数据转换芯片,都将使用大量的芯片本身的gpio引脚。对于上述情况,需使用到48个gpio,因此如果采用旧的实现方案,芯片本身必须具备大量的gpio,不利于降低硬件的成本,且硬件选型局限性较大。


技术实现要素:

3.本发明的目的在于提供一种基于内存映射的串行输入并行输出led控制装置及方法,该装置及方法电路结构简单,实现成本低,控制快速、高效。
4.为实现上述目的,本发明采用的技术方案是:一种基于内存映射的串行输入并行输出led控制装置,包括主控芯片nuc980和多个led控制芯片74hc164pw,每个led控制芯片通过8个gpio与8个led灯连接,主控芯片通过2个gpio口与一个led控制芯片对接,一个时钟引脚,一个数据引脚,所有led控制芯片共用一个rst引脚。
5.进一步地,包括6个led控制芯片74hc164pw,6个led控制芯片共用一个rst引脚,从而通过13个gpio口控制48个led灯。
6.本发明还提供了一种基于内存映射的串行输入并行输出led控制方法,通过运行于linux应用层的多led控制程序来控制多个led灯工作:初始化时,通过mmap系统函数,映射gpio的寄存器地址到应用程序空间,映射之后返回指针数据类型;对指针地址进行读写,即可控制led的时序信号和data信号,从而控制多个led灯工作。
7.进一步地,采用模块化软件设计,串口和tcp/udp互相转发程序单独一个进程,多led控制程序单独一个进程,通过udp进行进程通信。
8.进一步地,采用openwrt uloop 框架开发基于udp协议的进程间通信程序,uloop 库使用epoll 网络框架进行第二次封装,通过epoll进行高性能的网络通信数据开发,udp数据的接收不需要使用多线程技术,只监听epoll事件,系统自动通告read和write事件,再通过回调函数read数据,从而达到异步接收数据的目的。
9.与现有技术相比,本发明具有以下有益效果:提供了一种基于内存映射的串行输入并行输出led控制装置及方法,该装置使用少量的cpu gpio口,即可扩展gpio控制多个led,电路结构简单,降低了硬件成本。该方法在linux应用态开发多led控制程序,在应用程序中即可实现对led控制芯片74hc164pw的控制,控制方式简单高效。此外,该方法3. 采用mmap内存映射控制gpio寄存器,满足了74hc164pw时序要求,从而可以快速、高效地控制gpio。
附图说明
10.图1是本发明实施例的装置电路原理图。
11.图2是本发明实施例中led控制芯片的电路原理图。
12.图3是本发明实施例的控制原理图。
具体实施方式
13.下面结合附图及实施例对本发明做进一步说明。
14.应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
15.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
16.如图1、2所示,本实施例提供了一种基于内存映射的串行输入并行输出led控制装置,包括主控芯片nuc980和多个led控制芯片74hc164pw,每个led控制芯片通过8个gpio与8个led灯连接,主控芯片通过2个gpio口与一个led控制芯片对接,一个时钟引脚,一个数据引脚,所有led控制芯片共用一个rst引脚。
17.在本实施例中,包括6个led控制芯片74hc164pw,6个led控制芯片共用一个rst引脚,从而通过13个gpio口控制48个led灯。
18.为了实现对上述装置的控制,本实施例提供了基于内存映射的串行输入并行输出led控制方法,通过运行于linux应用层的多led控制程序来控制多个led灯工作:初始化时,通过mmap系统函数,映射gpio的寄存器地址到应用程序空间,映射之后返回指针数据类型;对指针地址进行读写,即可控制led的时序信号和data信号,从而控制48个led灯工作。本发明通过内存映射,将gpio的寄存器地址直接映射到应用层,映射过后,gpio变成指针类型的地址,通过赋值操作即可对这些gpio的电平进行控制,满足74hc164pw芯片时序,从而避免使用系统调用。本实施例的控制原理如图3所示。
19.在本实施例中,采用模块化软件设计,串口和tcp/udp互相转发程序单独一个进程,多led控制程序单独一个进程,通过udp进行进程通信,便于软件的维护和敏捷开发。
20.在本实施例中,采用openwrt uloop 框架开发基于udp协议的进程间通信程序,uloop 库使用epoll 网络框架进行第二次封装,通过epoll进行高性能的网络通信数据开发,udp数据的接收不需要使用多线程技术,只需要监听epoll事件,系统自动通告read和write事件,再通过回调函数read数据,从而达到异步接收数据的目的,避免创建新线程来阻塞监听udp数据,降低系统的性能。
21.本发明采用udp通信可以提高通信效率,避免数据延时,ms(毫秒)之能完成信号的传输,从而使得人眼观测起来,串口数据的收发和led的闪烁是同步进行的,从而达到同步的效果。
22.以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等
效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。


技术特征:
1.一种基于内存映射的串行输入并行输出led控制装置,其特征在于,包括主控芯片nuc980和多个led控制芯片74hc164pw,每个led控制芯片通过8个gpio与8个led灯连接,主控芯片通过2个gpio口与一个led控制芯片对接,一个时钟引脚,一个数据引脚,所有led控制芯片共用一个rst引脚。2.根据权利要求1所述的基于内存映射的串行输入并行输出led控制装置,其特征在于,包括6个led控制芯片74hc164pw,6个led控制芯片共用一个rst引脚,从而通过13个gpio口控制48个led灯。3.一种基于权利要求1或2所述装置的基于内存映射的串行输入并行输出led控制方法,其特征在于,通过运行于linux应用层的多led控制程序来控制多个led灯工作:初始化时,通过mmap系统函数,映射gpio的寄存器地址到应用程序空间,映射之后返回指针数据类型;对指针地址进行读写,即可控制led的时序信号和data信号,从而控制多个led灯工作。4.根据权利要求3所述的基于内存映射的串行输入并行输出led控制方法,其特征在于,采用模块化软件设计,串口和tcp/udp互相转发程序单独一个进程,多led控制程序单独一个进程,通过udp进行进程通信。5.根据权利要求3所述的基于内存映射的串行输入并行输出led控制方法,其特征在于,采用openwrt uloop 框架开发基于udp协议的进程间通信程序,uloop 库使用epoll 网络框架进行第二次封装,通过epoll进行高性能的网络通信数据开发,udp数据的接收不需要使用多线程技术,只监听epoll事件,系统自动通告read和write事件,再通过回调函数read数据,从而达到异步接收数据的目的。

技术总结
本发明涉及一种基于内存映射的串行输入并行输出LED控制装置及方法,该装置包括主控芯片NUC980和多个LED控制芯片74HC164PW,每个LED控制芯片通过8个GPIO与8个LED灯连接,主控芯片通过2个GPIO口与一个LED控制芯片对接,一个时钟引脚,一个数据引脚,所有LED控制芯片共用一个RST引脚;该方法通过运行于Linux应用层的多LED控制程序来控制多个LED灯工作:初始化时,通过mmap系统函数,映射GPIO的寄存器地址到应用程序空间,映射之后返回指针数据类型;对指针地址进行读写,即可控制LED的时序信号和DATA信号。该装置及方法电路结构简单,实现成本低,控制快速、高效。高效。高效。


技术研发人员:张福旭 李宏达 周素青 郑俊强 王伟生 周晓雪 李文杰 吴孝焕 肖家明 郑礼鋆 卢雪莲 黄燕婷 吴农文 赵泽洋 石远航 庄振聪 李弘哲 陈静怡 翁昕晨 刘涛 涂其文 陈宇
受保护的技术使用者:福建信息职业技术学院
技术研发日:2022.03.29
技术公布日:2022/6/28
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1