新闻  |   论坛  |   博客  |   在线研讨会
通信接口的自适应
0750long | 2010-03-04 20:27:42    阅读:1577   发布文章

通信接口的自适应

 

 

毕业设计中有一个通信接口的自动识别问题,接口包括USB、CAN、并口、串口还有网口等,希望实现自动识别接口,并优先使用其中某种接口。

最初是准备用硬件识别,这样比较简单,用中断或者端口查询都能够解决,但是现在给出的引出端口并不够用,所以或者需要从软件上面来入手。

基于操作系统的信号量,想了几个方案:

1、设置一个二值信号量,当接入接口,发生相应中断后,对应接口服务程序将其占有,其他接口将不能使用,待此接口服务程序退出之后,将信号量释放,恢复所有接口功能。

这个方案能够保证在同一时间内只有一种接口在工作(单线程程序),各个接口之间不会相互冲突。但是,方案没有优先级,属于先到先得,随机性比较大。

2、使用独热编码,给每个接口分别设置优先级,如USB最高,当USB工作的时候,编码对应位置位,此时其他接口不可用,只有当USB退出后,其他接口才能竞争上岗。

这个方案没怎么想清楚,感觉实现起来和第一种效果差不多。

3、硬件。此方案借助的是接口电源,将其电源接入到IO口(使用的是ARM,有IO中断管理),当上电时,通过查询端口,就可以知道接入了什么通信接口,然后通过优先级判定什么接口工作。当临时插入其他接口的时候,可以使用中断改变信号量或者编码状态。

这个方案中有一个问题就是串口和CAN口接入的时候并没有形成电源电平,怎么去触发中断是个问题。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客