原创 通信接口的自适应

2010-1-22 10:14 1739 8 8 分类: 通信

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


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


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


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


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


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


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


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


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


 


不知道这些想法是否能够实现,或者有更好的方法?万望指教!


cqnorman@163.com

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /3 下一条