I/O设备又叫输入输出设备。
如上图,对于I/O bus 包含数据总线、控制总线、地址总线;
每一个I/O设备均连接到I/O总线上,与pc进行数据传输。所以衍生出I/O接口的概念,逐渐产生了一门技术“I/O接口技术”。
I/O接口电路位于cpu和外设之间(复杂的外设需要有一个设备控制器),外设通过I/O接口把信息传送给微处理器进行处理,微处理器将处理完的信息通过I/O接口传给外设。
一个典型的I/O接口应包含:端口,地址译码,总线驱动,控制逻辑。
I/O端口属于cpu可以直接访问的寄存器,包括状态寄存器、数据寄存器、控制寄存器。
地址译码属于对I/O总线的地址进行译码选中I/O端口。
总线驱动是在I/O端口和I/O总线之间的一个“三态门”,实现cpu和I/O接口之间的“浮空”和“联通”。
控制逻辑是接收控制端口的信息对接口工作进行控制。
(以上黑色文字,属于教课书定义,可能理解与understanding the Linux kernel出入,只作为参考)
I/O总线通过总线驱动(三态),连接到I/O port,寄存器组,通过I/O接口解读信号,发送给设备控制器进行进一步解释,转化为适当的电信号,控制外设相应的的操作。
反向操作原理相同。
I/O接口(I/O interface)分为专用的接口和通用的接口。
专用I/O接口:专门用于一个特定的硬件设备。例如:图形接口,网络接口(与网卡中的控制器封装在一起,可以接受和发送网络报文)。
通用的I/O接口,用来连接多个不同的硬件设备。例如:并口(打印机),串口(UART)、scsi接口,通用串行总线(USB)。
复杂的设备可能需要一个设备控制器(devicecontroller)来驱动。控制器的两个重要的作用参考understanding linux kernel中的文字。
比较简单的设备,如中断控制器,定时器等不需要对I/O接口的高级指令进行二次解析和电平的转换,所以不需要设备控制器。
I/o设备一般分为字符设备和块设备。
上一篇:单片机串口设置问题
下一篇:对单片机行业的一些理解
推荐阅读
史海拾趣
随着公司业务的不断扩张,3E SECURITY积极寻求与国际同行的合作机会。通过与国外知名安全公司开展技术合作、市场共享等方式,公司成功打开了国际市场的大门。同时,公司还积极参与国际安全标准的制定和推广,提升了公司在国际舞台上的影响力和竞争力。
3E SECURITY公司自创立之初,便以技术创新为核心竞争力。在电子安全领域,公司不断投入研发,推出了一系列具有自主知识产权的安全产品。其中,一款智能安全监控系统凭借其高度集成和智能化特点,迅速在市场上占据了一席之地。通过不断的技术革新,3E SECURITY逐渐在电子安全行业树立了技术领先的形象,吸引了大量合作伙伴和客户的关注。
在汽车制造领域,福特一直是技术创新的领导者。20世纪60年代,福特开始将电子设备集成到汽车中,包括车载电话、导航系统以及早期的娱乐系统。这些创新不仅提升了驾驶的便捷性和舒适性,也预示着未来汽车电子化、智能化的趋势。虽然这些技术并不直接属于航空通信范畴,但它们展示了福特在电子技术应用方面的前瞻性和实力。
随着市场竞争的加剧,Chip Supply Micro Devices意识到成本控制的重要性。公司开始着手优化供应链管理,通过引入先进的生产管理系统和自动化设备,提高了生产效率,降低了生产成本。同时,公司还与供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和优质品质。这些措施使得Chip Supply Micro Devices在价格上具备了竞争优势,进一步提升了市场份额。
随着市场需求的不断增长,CDI-DIODE公司意识到单凭自身力量难以满足所有客户的需求。于是,公司积极寻求与其他企业的合作,通过共同研发、生产和销售,实现了业务的快速拓展。这种合作模式不仅提升了公司的产能和效率,也加强了与合作伙伴之间的紧密联系。
在激烈的市场竞争中,CAROLCABLE公司深知技术创新是企业发展的核心动力。因此,公司不断加大研发投入,引进先进的生产设备和技术人才,推动技术创新和产业升级。经过多年的努力,CAROLCABLE成功研发出了一系列具有自主知识产权的高性能线缆产品,这些产品在传输速度、稳定性和耐用性等方面均达到了行业领先水平。
随着产品技术的不断升级,CAROLCABLE开始积极拓展国内外市场。公司参加了多个国际电子线缆展会,与全球同行交流学习,寻找合作机会。同时,CAROLCABLE还加强与国内大型电子企业的合作,为其提供定制化的线缆解决方案。这些举措不仅为公司带来了更多的商机,也进一步巩固了CAROLCABLE在电子线缆行业的领先地位。
这两个故事仅是对CAROLCABLE公司发展起来的简要描述,实际上,公司的成长历程中还有许多值得探讨的细节和里程碑事件。如需了解更多关于CAROLCABLE公司的故事,建议查阅相关新闻报道或公司官方资料。
PCI卡的布线比较讲究,这是PCI信号的特点决定的。在常规性的高频数字电路设计中我们总是力求避免阻抗不匹配造成的信号反射、过冲、振铃、非单调性现象,但是PCI信号却恰恰是利用了信号的反射原理来传输物理信号,为使能够合理利用信号反射同时又尽 ...… 查看全部问答∨ |
|
菜鸟。刚学习avr单片机。先要实现atmega128的在线更新功能。但是对avr不熟悉。请问可以调用再带的库函数来编写程序么?怎么用?有什么avr的学习资料么?邮箱:yuanzaikang-no.1@163.com 不甚感激!… 查看全部问答∨ |
WinCE5.0系统启动后自动识别U盘? 现在想问问大家,在使用WinCE5.0情况下,系统没有启动时,插上u盘,启动WinCE后可以直接识别U盘么(就是不用在拔插一次)? 现在的情况是:系统没有启动时,插上u盘,启动WinCE后不会识别U盘。非要拔插一次才可以识 ...… 查看全部问答∨ |
本人有一WINCE程序,无原代码,软件是存入SD卡,放入一体机内运行,现想加密别人无法拷贝或是拷贝后需注册码,或是在软件启动时到注册表某一位置检查注册码,如查不到自动退出 求高手指点,或是有没有哪款加壳软件可以实现 … 查看全部问答∨ |
|
最近按照MSDN的步骤在玩WinCE Bootloader,按照其标准流程用命令行编译,发现根本不能编译,连建立环境都建立不了。 在sysgen的时候就提示“环境变量SYSGEN没有定义”。 网上搜索一翻,发现了一些贴子,就先建立了一个工程,并把Bootloader所在的 ...… 查看全部问答∨ |
小弟刚接触嵌入式驱动开发,想了解下三星s3c2440a串口驱动,源代码和s3c2440a用户手册都有了,但是看不懂串口驱动的源代码,跪求各为大虾为小弟分析下代码… 查看全部问答∨ |