【说明】
某温度采集系统以处理器为核心,采用 PC 总线连接嵌入式键盘和多个温度传感
器,温度传感器负责采集温度,键盘可以输入字符和数字信息,并通过 RS232 总
线连接上位机。I²C (Inter Integrated Circuit)总线是一种 2 线式串行总线,用于连接控制器及其外围设备。I²C 总线最主要的优点是其简单性和有效性。它
支持多主控(multimastering),其中任何能够进行发送和接收的设备都可以成为
主总线。一个主控能够控制信号的传输和时钟频率。但在任何时间点上只能有一
个主控。 PC 的这些特点使其在许多设计中备受青睐,本系统中采用 I²C 总线连
接嵌入式键盘和多个温度传感器,如图 4-1 所示
【问题 1】
I²C 总线上传送的信号是广义的,既包括地址信号,又包括数据信号。在起始
信号后必须传送一个从机的地址、数据的传送方向。每次数据传送总是由主机
产生的终止信结束。但是,若主机希望继续占用总线进行新的数据传送,则可
以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。I²C 总线协
议规定:寻址字节由从机地址(D7~D1 位)、数据传送方向位(D0 位:“0”表示
主机向从机写数据,“1”表示从从机读取数据)组成,如图 4-2 所示。主机发
送地址时线上的每个从机都将这 7 位地址码与自己的地址进行比较,如果相
同,则认为自己正被主机寻址,根据 D0 位将自己确定为发送器或接收器。
该系统中用 I²C 总线连接了多个同样的温度传感器,用于实时采集温度值。该传
感器的从机地址由固定位和可编程位组成,7 位地址位前 4 位(即 D7~D4)是固定位,后 3 位 D3~D1)是可编程位。该系统中最多可连接(1)个本型 的温度传感
器。该温度传感器从机地址中固定位是 0xA,传感器 1 的可编程位是 0、传感器
2 的可编程位是....以此类推。当主机读取传感器 4 的数据时,总线命令序列中
的寻址字节值是(2)。
【问题 2】
本系统通过 1 路 RS232 总线将采集的温度值传给上位机进行处理。RS232 采用异
步通信方式传送 ASCII 码,数据位 8 位,奇校验 1 位,停止位 1 位。当 RS232 的
波特率设置 4800 时,字符传送的速率是(1)字符 1 秒,每个数据位的时间长度
是(2)毫秒,数据位的传送速率是(3)位/秒。
【问题 3】
同时,本系统通过 I²C 总线连接了嵌入式键盘,用于人机交互。频繁按键会导
致连续使用 I²C 总线读取数据,由于 I²C 总线操作是一个应答式的命令序列,
所以防止 2 次写之间的干扰(即在一次读写没有完成之前,另一次读写操作也占
用 I²C 总线,两次的数据会造成紊乱)是一个重要的问题。
(1)为防止多次频繁按键,导致总线访问错误,需要采取什么机制,保证每次
只允许一个读写操作占用总线?
(2)在执行读写操作命令序列时,如何使用该机制?