一种模拟I2C通信方法及系统技术方案

技术编号:34174937 阅读:29 留言:0更新日期:2022-07-17 11:41
本发明专利技术涉及系统任务调度技术领域,提供一种模拟I2C通信方法及系统,在原有的抢占式任务机制上进行改进,将I2C发送任务的发送规则设置为多轮单帧数据发送,每轮只发送一帧数据;而当检测到比当前待办任务更高优先级的目标待办任务时,在本轮单帧数据发送完成后,再执行目标待办任务,如此,在各从设备进行模拟I2C通信时,低优先级的从设备与主控器的通信不会被高优先级从设备随意打断,数据发送过程中单帧数据完整,且能够快速执行高优先级目标待办任务。待办任务。待办任务。

An analog I2C communication method and system

【技术实现步骤摘要】
一种模拟I2C通信方法及系统


[0001]本专利技术涉及系统任务调度
,尤其涉及一种模拟I2C通信方法及系统。

技术介绍

[0002]当高级任务获得资源进入就绪状态时,低级任务就从执行状态退出到就绪状态,让高级任务执行,这称为抢占式任务调度机制。
[0003]在现有的模拟I2C技术中,各个I2C从设备对应的程序是分别调用模拟I2C模块来向对应的I2C从设备发送数据,这在时间片单循环软件中是没有问题的。
[0004]但是,在FreeRTOS操作系统中使用抢占式任务机制,由于各个I2C从设备对应的程序具有不同的优先级。因此,有可能当程序1(例如收音)正在发送I2C数据时,系统调度了更高优先级的程序2(例如音量调节),打断了程序1的模拟I2C数据发送,开始发送程序2的模拟I2C数据,造成程序1的I2C数据发送异常,导致操作指令乃至系统异常。

技术实现思路

[0005]本专利技术提供一种模拟I2C通信方法及系统,解决了现有的FreeRTOS操作系统使用抢占式任务机制,使得模拟I2C通信系统在任务调度过程中,通信中断本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种模拟I2C通信方法,其特征在于,包括步骤:S1、设置一个I2C发送任务,并将其配置为最高优先级;S2、根据预设策略和所述I2C发送任务,执行当前待办任务进行多轮单帧数据发送;S3、当检测到更高优先级的目标待办任务时,判断本轮单帧数据发送是否完成,若是根据所述预设策略执行所述目标待办任务进行多轮单帧数据发送;否则继续执行本轮单帧数据;S4、当检测到所述目标待办任务执行完成后,恢复执行所述当前待办任务的执行。2.如权利要求1所述的一种模拟I2C通信方法,其特征在于,所述将其配置为最高优先级具体为:将所述I2C发送任务的优先级配置为高于所有I2C从设备对应的数据任务的优先级。3.如权利要求2所述的一种模拟I2C通信方法,其特征在于,所述步骤S2包括步骤:S21、控制当前待办任务进入执行状态,并依次序将对应第一I2C数据中的一帧数据发送到所述I2C发送任务;S22、控制所述当前待办任务转入挂起状态;S23、所述I2C发送任务接收所述第一I2C数据的当前帧,并根据其中的从设备地址发送给对应的I2C从设备;S24、当所述当前帧发送完毕后,判断在就绪的任务中,是否有比所述当前待办任务更高优先级的待办任务,如果有则将其确定为目标待办任务并进入步骤S3,否则返回步骤S21。4.如权利要求3所述的一种模拟I2C通信方法,其特征在于,所述步骤S22具体为:调用vTaskSuspend()API函数使所述当前待办任务进入挂起状态。5.如权利要求1所述的一种模拟I2C通信方法,其特征在于,所述根据所述预设策略执行所述目标待办任务进行多轮单帧数据发送包括步骤:A、控制所述目标待办任务进入执行状态,并依次序将对应第二I2C数据中的一帧数据发送到所述I2C发送任务;B、控制所述目标待办任务转入挂起状态;C...

【专利技术属性】
技术研发人员:张国柱
申请(专利权)人:惠州华阳通用电子有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1