【技术实现步骤摘要】
一种模拟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...
【专利技术属性】
技术研发人员:张国柱,
申请(专利权)人:惠州华阳通用电子有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。