亲爱的对话框,
我的应用程序必须执行600us的任务持续时间,以在给定频率为150Hz的频率下激活多个I / O.这些I / O的控制精度必须小于2美元。因此,在任务期间不会发生中断。此外,每个任务之间的时间的容差必须小于50us。任务之间没有什么可以做的,因此目前通过BLE Muss沟通。更多的是,BLE通信的持续时间不应该是长时间避免任何重载的下一个任务。
是否可以在这样的配置中编程FreeRos?
(任务1)___________ble活动___________(task2)___________ble活动___________(任务3)___________ble活动___________等....
PYM
设备:
嗨pypuller,
关于你exet的BLE方案的一些事情,你不能指导在BLE通信发生时,你不能阻止服务BLE中断的系统(在BLE中丢失事件可能是非常关键的,因为失去事件它意味着失去了你连接)此外,50us还不足以使设备为服务提供BLE事件。这68倍通过单个CPU装备了BLE事件在特定时间片中应该发生,这不仅仅依赖于您的设备,而且还可以依赖于连接到您的对等设备,按顺序屏蔽BLE中断,按顺序优先考虑您的任务毁灭性的沟通。关于您要求的时间是非常差异的,如果不是不可能实现的,但应该有足够的信息有关任务切换以及释放RTOS如何将任务安排在可免费的RTOS文档中。
谢谢mt_dialog.
亲爱的对话框,
感谢您的快速及时的反馈!:-)。让我问你有关你的答案的更多问题:
“当BLE通信发生时无法指导” - >如果在我未中断的任务期间发生BLE通信,我可以在我的任务之后提供BLE需求吗?
“您无法阻止服务BLE中断的系统” - >在提供BLE中断之前的最长时间是什么?
“50us是不够的,使设备为服务提供BLE事件” - >最小BLE通信时间持续时间是多少?在程序的开头无法初始化具有非常短的框架的协议?以非常快的速度?
“BLE事件应在特定时间片中发生” - >在程序开头初始化特定时间片的定时持续时间?
“这不仅仅取决于您的设备,还不依赖于连接到您的对等设备” - >作为连接到我的设备的对等体是我自己的应用程序,我可以定义自己的BLE协议通信吗?
“应该有足够的信息有关任务切换以及Freertos如何安排Freertos文档中的任务” - > OK,请给我我应该阅读的最佳链接。
谢谢,Pym
嗨pypuller,
该设备将根据广告或连接间隔安排BLE事件,了解您应该可以的广告事件,您可以延迟甚至停止事件,但如果您因任务执行而松开事件,则在连接事件的情况下如果您继续丢失事件,那么有机会丢失连接,那么您不会能够建立或保持活动的连接。在两个设备交换其对连接的偏好之后,应决定连接间隔,因此当连接事件发生(BLE中断)并在事件前有多长时间时,它不固定,这取决于使用情况案例和建立的连接。
服务的方式是非常复杂的,因为发生中断,并且BLE Manager任务将采取动作以便为中断服务并计划越来越多的事件,因此在BLE事件期间不仅需要您的任务放置,但也应该有时间为BLE适配器和BLE管理器,您无法推迟这些任务,因为它将导致丢失事件。关于Timimg以及您可以延迟BLE适配器的执行和服务的中断本身,我没有一个数字,但没有能力,只要出现BLE中断,ISR应该没有延迟。
关于BLE事件的长度,这也取决于事件无向广告,不可连接的广告,连接事件(连接事件的连接事件的时间是多长时间,根据设备必须携带到另一边的数据)声明“50美国不足以提供给服务的BLE活动”并不是那么适当的,因为设备只需要安排事件,然后HW将为无线电活动提供服务,但50US是非常小的,以便BLE非常小任务运行。底线是,BLE具有更大的优先级,并且通过减少由于您的任务导致的优先级将导致不稳定的连接,因为您无法预测来自协议的完全恰好,以便保持任务的严格时机,并且如上所述还有其他任务从SDK运行,它将需要在事件期间处理,您无法阻止这些任务,留下一个50us的窗口,为BLE中断和操作的BLE任务不会发生。
“在程序的乞求下,无法初始化特定时间片的时序持续时间”:我真的没有真正得到问题,BLE事件的持续时间取决于事件的种类和设备的数据将决定每次发送。
是的,如果您将拥有自定义应用程序,您可以只要想要设置连接间隔。
我可以分享没有具体的链接请查看免费的Rtos官方支持网站。
谢谢mt_dialog.