利用数据总线扩展外围设备:首先,通过硬件连接确定外围设备的地址;其次,通过外围设备的地址进行与外围设备进行数据的交换。想要读取外围设备输出到总线上的数据,可以通过读取对应外围设备的地址中的数据,即是外围设备输出到总线上的数据;对外围设备写数据,同样对外围设备的地址写入数据,系统就会自动把数据通过数据总线写入外围设备。
有很多外设连接到数据总线,这时就要注意不要把多个外设的数据同时输出到数据总线上,这就是外设的片选问题,一般通过不同的硬件地址连接方案就可以解决片选问题,现在的问题是地址总线怎么实现外设的片选的?用程序应该怎么实现?
如果说程序中对外设地址进行写入数据,相应的MCU的地址线上就是外设的地址,这样就可以选中外设同时进行写入操作;但是当读取外设数据的时候,也就是外设向数据总线传输数据,这时读取外设地址中的数据就是传输到数据总线上的数据,问题是读取地址中的数据时,MCU的地址线上也是外设的地址编码?只有这样才能实现片选吧