CN103218327A - 嵌入式系统多进程交互共用spi通讯总线的方法 - Google Patents
嵌入式系统多进程交互共用spi通讯总线的方法 Download PDFInfo
- Publication number
- CN103218327A CN103218327A CN2013101545504A CN201310154550A CN103218327A CN 103218327 A CN103218327 A CN 103218327A CN 2013101545504 A CN2013101545504 A CN 2013101545504A CN 201310154550 A CN201310154550 A CN 201310154550A CN 103218327 A CN103218327 A CN 103218327A
- Authority
- CN
- China
- Prior art keywords
- spi
- message
- communication bus
- embedded system
- processes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Multi Processors (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了嵌入式系统多进程交互共用SPI通讯总线的方法,包括以下步骤:(1)系统初始化并创建进程;(2)系统为各种SPI消息进行一一标记;(3)进程向系统注册自身需要的SPI消息;(4)系统根据收到的SPI消息的标记将SPI消息发送给对应的进程。本发明具有以下有益效果应用层的进程有自己独立的SPI通信队列,可根据需要只注册自己关注的SPI消息,对其他SPI消息的交互无需做任何处理;单一进程的SPI通信不再受其他进程的限制,是否需要处理SPI消息完全不受其他进程的影响,进程的创建和退出也不会影响其他进程的SPI消息处理;某个进程的SPI消息队列堵塞,完全不会影响到其他进程的通信,系统的稳定性得到了提高。
Description
技术领域
本发明涉及一种嵌入式系统多进程交互共用SPI通讯总线的方法。
背景技术
在现有技术中,交互式多进程嵌入式多媒体系统的SPI通信多采用如图1的系统设计方案: A系统是个没有显示设备的嵌入式系统,主要实现如Tuner芯片的驱动和管理、CD或者DVD机芯的驱动和管理、电源检测和管理、倒车的检测和管理等功能。而这些功能如果需要显示出来,则需要另外一个基于Arm的多进程多媒体嵌入式B系统来完成,嵌入式B系统需要,除了完成自己的任务之外,还需要显示和处理A系统的所有功能的显示任务。A系统和B系统之间的通信只有一条SPI 通信总线,也就是A系统和B系统之间交互的数据,全部只能够通过唯一的一条SPI 通信总线。传统的设计是因为A,B两个系统只有一条SPI通信总线,则B系统里面只能够有一个进程可以和A 系统进行通信。所以B系统的设计则往往是创建一个独立的通信进程和A系统进行通信, B系统的通信进程收到A系统的消息之后,广播给其它需要使用这条消息的进程,这种方法也能够达到一条消息同时给导航系统多个进程共享的目的。但是这种设计存在明显的设计缺陷,主要的缺点是下面几个:1、只有B系统的SPI通信进程可以接受和处理A系统的SPI消息,一旦通信进程出现异常不能正常工作,则这个系统将会瘫痪,系统的设计稳定性较差。2、B系统所有使用SPI消息的进程都需要时刻等待通信进程是否有SPI消息抛出,接收到之后还需判断是否是自己需要的数据,不是自己需要的数据则丢掉,因此整个系统的资源消耗会比较大,执行效率比较低,造成资源浪费。3、通信进程不能处理消息的优先级,收到消息之后按照收到的先后顺序向系统进行广播,无法满足单个消息使用进程自己定义自己的消息处理优先级。4、当某个SPI 处理线程比较繁忙的时候,则不能及时响应SPI处理进程的系统广播消息,此时又有另外的SPI消息广播,此时容易造成消息丢失,从而造成系统存在严重的质量缺陷。
发明内容
为了解决上述现有交互式多进程嵌入式多媒体系统的SPI通信的问题,本发明提供一种嵌入式系统多进程交互共用SPI通讯总线的设计方案。
嵌入式系统多进程交互共用SPI通讯总线的方法,包括以下步骤:(1)系统初始化并创建进程;(2)系统为各种SPI消息进行一一标记;(3)进程向系统注册自身需要的SPI消息;(4)系统根据收到的SPI消息的标记将SPI消息发送给对应的进程。
所述步骤(2)所述标记的方法为:为每一个不同的SPI消息分配唯一的编号。
步骤(3)的实现方法为:进程通过自身需要的SPI消息对应的编号向系统注册,系统将每个进程对应注册的SPI消息分别进行存储。
步骤(3)还包括进程向系统申请单独的通信消息队列的步骤。
步骤(4)的实现方法为:(41)系统接收到SPI消息,并查询其对应的编号;(42)根据编号查询所有对应的进程;(43)将SPI消息发送到所有对该消息注册的进程。
所述步骤(43)的实现方法为:将SPI消息放入对应的进程向系统申请的消息队列中,并通知该进程。
还包括SPI消息丢弃步骤:若查询不到任何进程注册所接收到的SPI消息,则将该SPI消息丢弃。
还包括SPI消息注销步骤:若某进程不再需要其已注册的SPI消息或者进程退出时,则向系统发送注销请求,系统收到请求后将存储的相关记录删除。
综上所述,本发明具有以下有益效果:(1)应用层的进程有自己独立的SPI通信队列,可根据需要只注册自己关注的SPI消息,对其他SPI消息的交互无需做任何处理;(2)单一进程的SPI通信不再受其他进程的限制,是否需要处理SPI 消息完全不受其他进程的影响,进程的创建和退出也不会影响其他进程的SPI消息处理;(3)某个进程的SPI消息队列堵塞,完全不会影响到其他进程的通信,系统的稳定性得到了提高。
附图说明
图1为本发明所述嵌入式系统多进程交互共用SPI通讯总线的方法系统架构示意图;
图2为本发明所述嵌入式系统多进程交互共用SPI通讯总线的方法实施流程示意图。
具体实施方式
为了让本领域的技术人员能够更好地了解本发明的技术方案,下面结合附图对本发明作进一步的阐述。
如图1和图2所示,本发明揭示了一种嵌入式系统多进程交互共用SPI通讯总线的方法,包括以下步骤:
(1)系统开机上电后,加载SPI 驱动程序初始化SPI通信设备和总线,实现系统与其他系统的SPI消息交互。SPI驱动加载完成之后,系统判断其SPI驱动是否加载成功,如果SPI 驱动加载失败,则重新加载SPI驱动程序,直到SPI驱动加载成功为止。SPI驱动加载成功后继续加载其他驱动模块,直到整个系统所有驱动初始化完成。系统初始化完成后便开始创建一些进程。
(2)系统为各种SPI消息进行一一标记,即为每一个不同的SPI消息分配唯一的编号。
(3)进程创建时,通过自身需要的SPI消息对应的编号向系统注册,系统将每个进程对应注册的SPI消息分别进行存储;同时进程向系统请求单独的通信消息队列,用于缓存接收到的SPI消息。
(4)系统根据收到的SPI消息的标记将SPI消息发送给对应的进程,系统接收到SPI消息,并查询其对应的编号,根据编号查询所有对应的进程,将SPI消息放入对应的进程向系统申请的消息队列中,并通知该进程。
设嵌入式系统B中创建了三个进程A、B和C,嵌入式系统B接收到来自嵌入式系统A的SPI消息后,首先判断该SPI消息的编号,设本次嵌入式系统B接收到的SPI消息编号为1,嵌入式系统B会根据进程注册的SPI消息的信息查询进程A,B和C 哪个进程注册了消息1,经过查询发现有进程A和进程C注册了这条消息,则嵌入式系统B把该SPI消息分别放入A进程和C进程的通信消息队列里面,并通知进程A和进程C有相关的SPI消息需要它们来解析和处理,然后继续等待接收新的SPI消息。若嵌入式系统B查询不到任何进程注册了编号为1的SPI消息,则将所接收到的SPI消息丢弃。另外,若某进程不再需要其已注册的SPI消息或者进程退出时,则向嵌入式系统B发送注销请求,嵌入式系统B收到请求后将存储的相关记录删除。
本实施例只是本发明的较优实施方式,未进行详细描述的部分均采用公知的成熟技术。需要说明的是,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1. 嵌入式系统多进程交互共用SPI通讯总线的方法,其特征在于,
(1)系统初始化并创建进程;
(2)系统为各种SPI消息进行一一标记;
(3)进程向系统注册自身需要的SPI消息;
(4)系统根据收到的SPI消息的标记将SPI消息发送给对应的进程。
2. 根据权利要求1所述的嵌入式系统多进程交互共用SPI通讯总线的方法,其特征在于,所述步骤(2)所述标记的方法为:为每一个不同的SPI消息分配唯一的编号。
3. 根据权利要求2所述的嵌入式系统多进程交互共用SPI通讯总线的方法,其特征在于,步骤(3)的实现方法为:进程通过自身需要的SPI消息对应的编号向系统注册,系统将每个进程对应注册的SPI消息分别进行存储。
4. 根据权利要求3所述的嵌入式系统多进程交互共用SPI通讯总线的方法,其特征在于,步骤(3)还包括进程向系统申请单独的通信消息队列的步骤。
5. 根据权利要求4所述的嵌入式系统多进程交互共用SPI通讯总线的方法,其特征在于,步骤(4)的实现方法为:
(41)系统接收到SPI消息,并查询其对应的编号;
(42)根据编号查询所有对应的进程;
(43)将SPI消息发送到所有对该消息注册的进程。
6. 根据权利要求5所述的嵌入式系统多进程交互共用SPI通讯总线的方法,其特征在于,所述步骤(43)的实现方法为:将SPI消息放入对应的进程向系统申请的通信消息队列中,并通知该进程。
7. 根据权利要求1所述的嵌入式系统多进程交互共用SPI通讯总线的方法,其特征在于,还包括SPI消息丢弃步骤:若查询不到任何进程注册所接收到的SPI消息,则将该SPI消息丢弃。
8. 根据权利要求1所述的嵌入式系统多进程交互共用SPI通讯总线的方法,其特征在于,还包括SPI消息注销步骤:若某进程不再需要其已注册的SPI消息或者进程退出时,则向系统发送注销请求,系统收到请求后将存储的相关记录删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310154550.4A CN103218327B (zh) | 2013-04-28 | 2013-04-28 | 嵌入式系统多进程交互共用spi通讯总线的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310154550.4A CN103218327B (zh) | 2013-04-28 | 2013-04-28 | 嵌入式系统多进程交互共用spi通讯总线的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103218327A true CN103218327A (zh) | 2013-07-24 |
CN103218327B CN103218327B (zh) | 2016-08-10 |
Family
ID=48816137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310154550.4A Active CN103218327B (zh) | 2013-04-28 | 2013-04-28 | 嵌入式系统多进程交互共用spi通讯总线的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103218327B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491280A (zh) * | 2018-03-20 | 2018-09-04 | 南京丹迪克科技开发有限公司 | 一种进程间的数据交互方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1703676A (zh) * | 2002-01-12 | 2005-11-30 | 英特尔公司 | 基于进程事件的信号量系统 |
CN101271438A (zh) * | 2007-03-22 | 2008-09-24 | Arm有限公司 | 用于在消息之间进行仲裁的数据处理装置和方法 |
US20110106979A1 (en) * | 2009-11-05 | 2011-05-05 | Electronics And Telecommunications Research Institute | Data communication system |
CN103034543A (zh) * | 2012-05-29 | 2013-04-10 | 福建三元达通讯股份有限公司 | 多软件运行环境通信方法、使多软件运行环境通信的方法 |
-
2013
- 2013-04-28 CN CN201310154550.4A patent/CN103218327B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1703676A (zh) * | 2002-01-12 | 2005-11-30 | 英特尔公司 | 基于进程事件的信号量系统 |
CN101271438A (zh) * | 2007-03-22 | 2008-09-24 | Arm有限公司 | 用于在消息之间进行仲裁的数据处理装置和方法 |
US20110106979A1 (en) * | 2009-11-05 | 2011-05-05 | Electronics And Telecommunications Research Institute | Data communication system |
CN103034543A (zh) * | 2012-05-29 | 2013-04-10 | 福建三元达通讯股份有限公司 | 多软件运行环境通信方法、使多软件运行环境通信的方法 |
Non-Patent Citations (1)
Title |
---|
穆云丽: "基于WinCE智能车载终端的研究与应用", 《仪表技术与传感器》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108491280A (zh) * | 2018-03-20 | 2018-09-04 | 南京丹迪克科技开发有限公司 | 一种进程间的数据交互方法及装置 |
CN108491280B (zh) * | 2018-03-20 | 2022-03-01 | 南京丹迪克科技开发有限公司 | 一种进程间的数据交互方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103218327B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2648114B1 (en) | Method, system, token conreoller and memory database for implementing distribute-type main memory database system | |
US9990306B2 (en) | Inter-manycore communications method and system | |
JP5074516B2 (ja) | ゼロ単一障害点ロード・バランサ(azerosinglepointoffailureloadbalancer)の装置および方法 | |
CN103473318B (zh) | 一种面向内存数据网格的分布式事务保障方法 | |
CN103136110B (zh) | 内存管理方法、内存管理装置及numa系统 | |
WO2015096656A1 (zh) | 线程创建方法、业务请求处理方法及相关设备 | |
US20150103645A1 (en) | Controller side method of generating and updating a controller assignment list | |
EP2902922B1 (en) | Distributed file system and data backup method for distributed file system | |
CN103744719A (zh) | 锁管理方法及系统、锁管理系统的配置方法及装置 | |
CN103812929A (zh) | 一种云数据中心管理平台双活方法 | |
WO2013181939A1 (zh) | 通信设备硬件资源的虚拟化管理方法及相关装置 | |
CN103888501A (zh) | 虚拟机迁移方法和装置 | |
CN102769670A (zh) | 虚拟机迁移方法、装置及系统 | |
CN104967691A (zh) | 一种分布式存储控制方法及系统 | |
US20150220559A1 (en) | Scalable File System | |
CN105515837A (zh) | 一种基于事件驱动的高并发web流量产生器 | |
EP3198361A1 (en) | Hardware controlled power domains with automatic power on request | |
EP2252101A2 (en) | Tolerant device licensing in a distributed environment | |
WO2016004826A1 (zh) | 基于数字家庭中间件的居家养老健康服务系统容错的方法 | |
CN103218327A (zh) | 嵌入式系统多进程交互共用spi通讯总线的方法 | |
TWI609595B (zh) | 群組通訊系統中多媒體廣播多播服務載體設定 | |
CN105338074A (zh) | 合同网任务分配方法、获取方法、智能代理器及mas | |
CN112956247A (zh) | 用于具有多个接入点的网络的业务指示符图 | |
CN101321264A (zh) | 应用于iptv平台面向服务的架构 | |
CN102571595A (zh) | 一种堆叠系统的路由转发信息同步方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 516006 Guangdong province Huizhou City Zhongkai high tech Zone and five West Road No. 103 Applicant after: HUIZHOU DESAY SV AUTOMOTIVE CO., LTD. Address before: 516006 Guangdong province Huizhou City Zhongkai high tech Zone and five West Road No. 103 Applicant before: Huizhou Desay SV Auto. Electronics Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |