打印
[牛人杂谈]

时序图怎么看

[复制链接]
1217|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
时序图(Sequence Diagram),亦称为序列图或循序图或顺序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。

操作时序永远使用是任何一片IC芯片的最主要的内容。一个芯片的所有使用细节都会在它的官方器件手册上包含。所以使用一个器件事情,要充分做好的第一件事就是要把它的器件手册上有用的内容提取,掌握。介于中国目前的芯片设计能力有限,所以大部分的器件都是外国几个IC巨头比如TI、AT、MAXIM这些公司生产的,器件资料自然也是英文的多,所以,英文的基础要在阅读这些数据手册时得到提高哦。即便有中文翻译版本,还是建议看英文原版,看不懂时不妨再参考中文版,这样比较利于提高。

我们首先来看1602的引脚定义,1602的引脚是很整齐的SIP单列直插封装,所以器件手册只给出了引脚的功能数据表:

我们只需要关注以下几个管脚:

3脚:VL,液晶显示偏压信号,用于调整LCD1602的显示对比度,一般会外接电位器用以调整偏压信号,注意此脚电压为0时可以得到最强的对比度。

4脚:RS,数据/命令选择端,当此脚为高电平时,可以对1602进行数据字节的传输操作,而此脚为低电平时,则是进行命令字节的传输操作。命令字节,即是用来对LCD1602的一些工作方式作设置的字节;数据字节,即使用以在1602上显示的字节。值得一提的是,LCD1602的数据是8位的。

5脚:R/W,读写选择端。当此脚为高电平可对LCD1602进行读数据操作,反之进行写数据操作。笔者认为,此脚其实用处不大,直接接地永久置为低电平也不会影响其正常工作。但是尚未经过复杂系统验证,保留此意见。

6脚:E,使能信号,其实是LCD1602的数据控制时钟信号,利用该信号的上升沿实现对LCD1602的数据传输。

7~14脚:8位并行数据口,使得对LCD1602的数据读写大为方便。

现在来看LCD1602的操作时序:

在此,我们可以先不读出它的数据的状态或者数据本身。所以只需要看两个写时序:

① 当我们要写指令字,设置LCD1602的工作方式时:需要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0~D7,最后E引脚一个高脉冲将数据写入。

② 当我们要写入数据字,在1602上实现显示时:需要把RS置为高电平,RW置为低电平,然后将数据送到数据口D0~D7,最后E引脚一个高脉冲将数据写入。

发现了么,写指令和写数据,差别仅仅在于RS的电平不一样而已。以下是LCD1602的时序图:

大家要慢慢学会看时序图,要知道操作一个器件的精华便蕴藏在其中,看懂看准了时序,你操控这个芯片就是非常容易的事了。1602的时序是我见过的一个最简单的时序:


沙发
598330983|  楼主 | 2016-9-25 14:46 | 只看该作者

1、注意时间轴,如果没有标明(其实大部分也都是不标明的),那么从左往右的方向为时间正向轴,即时间在增长。

2、上图框出并注明了看懂此图的一些常识:

(1).时序图最左边一般是某一根引脚的标识,表示此行图线体现该引脚的变化,上图分别标明了RS、R/W、E、DB0~DB7四类引脚的时序变化。

(2).有线交叉状的部分,表示电平在变化,如上所标注。

(3).应该比较容易理解,如上图右上角所示,两条平行线分别对应高低电平,也正好吻合(2)中电平变化的说法。

(4).上图下,密封的菱形部分,注意要密封,表示数据有效,Valid Data这个词也显示了这点。

3、需要十分严重注意的是,时序图里各个引脚的电平变化,基于的时间轴是一致的。一定要严格按照时间轴的增长方向来精确地观察时序图。要让器件严格的遵守时序图的变化。在类似于18B20这样的单总线器件对此要求尤为严格。

4、以上几点,并不是LCD1602的时序图所特有的,绝大部分的时序图都遵循着这样的一般规则,所以大家要慢慢的习惯于这样的规则。

也许你还注意到了上面有许多关于时间的标注,这也是个十分重要的信息,这些时间的标注表明了某些状态所要维持的最短或最长时间。因为器件的工作速度也是有限的,一般都跟不上主控芯片的速度,所以它们直接之间要有时序配合。话说现在各种处理器的主频也是疯狂增长,日后搞不好出现个双核单片机也不一定就是梦话。


使用特权

评论回复
板凳
598330983|  楼主 | 2016-9-25 14:49 | 只看该作者

下面是时序参数表:

大家要懂得估计主控芯片的指令时间,可以在官方数据手册上查到MCU的一些级别参数。比如我们现在用AVR M16做为主控芯片,外部12MHz晶振,指令周期就是一个时钟周期为(2/12MHz)s,所以至少确定了它执行一条指令的时间是us级别的。我们看到,以上给的时间参数全部是ns级别的,所以即便我们在程序里不加延时程序,也应该可以很好的配合LCD1602的时序要求了。怎么看这个表呢?很简单,我们在时序图里可以找到TR1,对应时序参数表,可以查到这个是E上升沿/下降沿时间,最大值为25ns,表示E引脚上的电平变化,必须在最大为25ns之内的时间完成。大家看是不是这个意思?

现在我来解读我对这个时序图的理解:

当要写命令字节的时候,时间由左往右,RS变为低电平,R/W变为低电平,注意看是RS的状态先变化完成。然后这时,DB0~DB7上数据进入有效阶段,接着E引脚有一个整脉冲的跳变,接着要维持时间最小值为tpw=400ns的E脉冲宽度。然后E引脚负跳变,RS电平变化,R/W电平变化。这样便是一个完整的LCD1602写命令的时序。

扩展阅读:51系列单片机关于时序问题

ps感谢热心网友的指出错误之处:

(1/12MHz)s是振荡周期,而不是时钟周期,因为时钟周期(状态周期)等于两个振荡周期,换句话说就是对振动频率进行“二分频”的振荡信号,所以(2/12MHz)s才是晶振为12MHz时的时钟周期。


2982dfe0528a00f64fe2173fdd3ec3e3.jpg (79.82 KB )

2982dfe0528a00f64fe2173fdd3ec3e3.jpg

使用特权

评论回复
地板
598330983|  楼主 | 2016-9-25 14:49 | 只看该作者
单片机的基本操作周期为机器周期,一个机器周期分为六个状态,每个状态由两个脉冲组成,也就是所谓的两箱(前一个脉冲P1叫相位1,后一个脉冲P2为相位2)。所以一个机器周期共有12个振荡脉冲。因此可以根据时钟频率计算出一个机器周期的时间。

例如:系统的时钟是11.0592MHZ,那么用它除以12,得到了每秒执行的机器周期书,然后取反就得到了机器周期的时间。

使用特权

评论回复
5
598330983|  楼主 | 2016-9-25 15:07 | 只看该作者

AT24C02是由ATMEL公司提供的,IIC总线串行EEPROM(electronic eraser programmer read only memory),其容量为2kbit(256B),工作电压在2.7v"5.5v之间,生产工艺是CMOS。

一般数字芯片都在左下角和右上角为GND,VCC。容量的计算方法:AT24Cxx :01"1024

容量 = xx * 1kbit。

写入过程:

AT24C系列EEPROM芯片的固定部分为1010,A2,A1,A0引脚接高低电平后得到确定的3位编码,形成7位编码即为该器件的地址码。

单片机进行写操作时,首先发送该器件的7位地址码和写方向位”0”(共8位,即一个字节),发送完后释放SDA线并在SCL线上产生第9个时钟信号。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为响应,单片机收到应答后就可以传送数据了。传送数据时,单片机首先发送一个字节的被写入存储器的首地址,收到存储器器件的应答后,单片机就逐个发送数据字节,但每发送一个字节后都要等待应答。AT24C系列片内地址在接收到每一个数据字节地址后自动加1,在芯片的“一次装载字节数”限度内,只需输入首地址。装载字节数超过芯片的“一次装载字节数”时,数据地址将“上卷”,前面的数据将被覆盖。


使用特权

评论回复
6
598330983|  楼主 | 2016-9-25 15:08 | 只看该作者

字节写:

页写:

读入过程:

单片机先发送该器件的7位地址码和写方向位“0”(“伪写”),发送完后释放SDA线并在SCL线上产生第9个时钟信号。被选中的存储器器件在确认是自己的地址后,在SDA线上产生一个应答信号作为回应。

然后,再发一个字节的要读出器件的存储区的首地址,收到应答后,单片机要重复一次起始信号并发出器件地址和读方向位(“1”),收到器件应答后就可以读出数据字节,每读出一个字节,单片机都要回复应答信号。当最后一个字节数据读完后,单片机应返回以“非应答”(高电平),并发出终止信号以结束读出操作。

当前地址读:

随机读:

有序读:

IIC总线模拟时序图:



IIC总线应答时序图:


设备地址:

写周期:

两次写之间要有一个10ms的twR间隔


9db8f836c4ec34b7930a6a3efd4df45b.gif (38.12 KB )

9db8f836c4ec34b7930a6a3efd4df45b.gif

ee3413a8e6bf8e0ae36721138932c686.gif (38.54 KB )

ee3413a8e6bf8e0ae36721138932c686.gif

179338d13fff72fe2ff312bfa52bc65c.gif (51.02 KB )

179338d13fff72fe2ff312bfa52bc65c.gif

67476627f7567aaab4fb13b8443b5fc2.gif (54.68 KB )

67476627f7567aaab4fb13b8443b5fc2.gif

72da9a1532d7ad26447ee3e06c74168a.gif (34.4 KB )

72da9a1532d7ad26447ee3e06c74168a.gif

cce263908dbed8e4ba157224b94bddaa.gif (43.78 KB )

cce263908dbed8e4ba157224b94bddaa.gif

0e87822b89d2821d541337650e80d49d.gif (34.24 KB )

0e87822b89d2821d541337650e80d49d.gif

3000ce275204f95914d2e06d8a1dcc93.gif (13.73 KB )

3000ce275204f95914d2e06d8a1dcc93.gif

821a204ad6a15de0ae7bffa648290487.gif (40.63 KB )

821a204ad6a15de0ae7bffa648290487.gif

5dd91279cc7cf932238a1fe509d00f40.gif (32.63 KB )

5dd91279cc7cf932238a1fe509d00f40.gif

c272cd0aa8a154de2c7c010a57b0a475.gif (11.29 KB )

c272cd0aa8a154de2c7c010a57b0a475.gif

使用特权

评论回复
7
dongnanxibei| | 2016-9-25 23:03 | 只看该作者
英文的基础要在阅读这些数据手册时得到提高

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

245

主题

5383

帖子

22

粉丝