"); //-->
毕业设计中有一个通信接口的自动识别问题,接口包括USB、CAN、并口、串口还有网口等,希望实现自动识别接口,并优先使用其中某种接口。
最初是准备用硬件识别,这样比较简单,用中断或者端口查询都能够解决,但是现在给出的引出端口并不够用,所以或者需要从软件上面来入手。
基于操作系统的信号量,想了几个方案:
1、设置一个二值信号量,当接入接口,发生相应中断后,对应接口服务程序将其占有,其他接口将不能使用,待此接口服务程序退出之后,将信号量释放,恢复所有接口功能。
这个方案能够保证在同一时间内只有一种接口在工作(单线程程序),各个接口之间不会相互冲突。但是,方案没有优先级,属于先到先得,随机性比较大。
2、使用独热编码,给每个接口分别设置优先级,如USB最高,当USB工作的时候,编码对应位置位,此时其他接口不可用,只有当USB退出后,其他接口才能竞争上岗。
这个方案没怎么想清楚,感觉实现起来和第一种效果差不多。
3、硬件。此方案借助的是接口电源,将其电源接入到IO口(使用的是ARM,有IO中断管理),当上电时,通过查询端口,就可以知道接入了什么通信接口,然后通过优先级判定什么接口工作。当临时插入其他接口的时候,可以使用中断改变信号量或者编码状态。
这个方案中有一个问题就是串口和CAN口接入的时候并没有形成电源电平,怎么去触发中断是个问题。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
FinFET到GAAFET的突破性转变
东风汽车集团、兵装集团同日宣布筹划重组
三菱FX系列PLC教程 46 —— FX系列的字左移指令
300kHz 600W ZVT-PWM boost变换器电路
MedWinV3菜单命令
布尔代数计算器
预约回拨(羊城新卡)招商给您最大的利润空间!!!
了解环形调制器如何产生AM信号
MedWinV3.0(英文安装界面)
三菱FX系列PLC教程 44 —— FX系列的循环左移指令
基于 LabVIEW 和 YOLOv8-Pose 的跳绳计数装置
传导致英伟达股价暴跌的DeepSeek拥有5万颗GPU
三菱FX系列PLC教程 47 —— FX系列的数据处理指令
利用低损耗LED驱动器,提高电源系统的“绿色”进程
ZVT软开关PFC开关稳压电源电路二
[原创]预约回拨(羊城新卡)招商给您最大的利润空间!!
100kHz600W功率因数校正电路
救护车头上文字为何要反转
MedWinV3 断点(适用于 ME-52HU设备驱动程序)
三菱FX系列PLC教程 43 —— FX系列的循环右移指令
三菱FX系列PLC教程 45 —— FX系列的字右移指令
:算算你值多少钱?
MedWinV3集成开发环境
总投资15亿元!浙江湖州吴兴零跑新能源汽车电池包项目开工
零电流转换软开关稳压电源实用电路
春晚科技 「秧」 光:人形机器人未来已来
深度剖析新能源汽车主流 AI 芯片选型
2000W全桥软开关直流稳压电源电路
乘车时不要闭目养神
MedWinV3.0(中文安装界面)