通信电子设计精品]基于at89c51单片机与pc机串口通信的温度控制系统论文内容摘要:
64 位(激)光刻 ROM : 每只 DS18B20 都有一个唯一的长达 64 位的编码。 最前面 8 位是单线系列编码( DS1820 的编码是 9h)。 下面 48 位是一个唯一的序列号。 最后 8位是以上 56 位的 CRC 码。 (见图 ) 64位 ROM 和 ROM操作控制区允许 DS18B20 作为 单线制器件并按照详述于 “ 单线总线系统 ” 一节的单线协议工作。 只有建立了 ROM 操作协议,才能对 DS1820 进行控制操作。 这个协议用 ROM操作协议流程图来描述。 单线总线控制器必须得天独厚提供 5 条 ROM 操作命令其中之一:1) Read ROM, 2) Match ROM, 3) Search Rom, 4) Skip ROM, 5) Alarm Search。 成功进行一次 ROM 操作后,就可以对 DS18B20 进行特定的操作,总线控制器可以发出六个存储器和控制操作命令中的任一 条。 图 64 位(激)光刻 ROM ( 3) CRC 发生器 DS18B20 中有 8 位 CRC 存储在 64 位 ROM 的最高有效字节中。 总线控制器可以用 64 位 ROM 中的前 56 位计算出一个 CRC 值,再用这个和存储在 DS1820 中的值进行比较,以确定 ROM 数据是否被总线控制器接收无误。 CRC 计算等式如下: CRC= 8X + 5X + 4X +1 DS18B20 同样用上面的公式产生一个 8 位 CRC 值,把这个值提供给总线控制器用来校验传输的数据。 在任何使用 CRC 进行数据传输校验的情况下,总线控制器必须用上面的公式计算出一个 CRC 值,和存储在 DS1820 的 64 位 ROM 中的值或 DS18B20 内部计算出的 8 位 CRC 值(当读暂存器时,做为第 9 个字节读出来)进行比较。 CRC 值的比较以及是否进行下一步操作完全由总线控制器决定。 当在 DS18B20中存储的或由其计算的 CRC值和总线控制器计算的值不相符时, DS18B20 内部并没有一个能阻止命令序列进行的电路。 单线 CRC 可以用一个由移位寄存器和 XOR 门构成的多项式发生器来产生,见图。 16 50 12/21/2020 图 多项式发生器 ( 4) 移位寄存器的各位都被初始化为 0。 然后从系列编号的最低有效位开始,一次一位移入寄存器。 8位系列编码都进入以后,序列号 再进入, 48 位序列号都进入后,移位寄存器中就存储了 CRC 值。 移入 8 位 CRC 会使移位寄存器复 0。 存储器DS1820 的存储器结构示于图。 存储器由一个暂存 RAM 和一个存储高低温报警触发值 TH 和 TL 的非易失性电可擦除( 2E ) RAM 组成。 当在单线总线上通讯时,暂存器帮助确保数据的完整性。 数据先被写入暂存器,这里的数据可被读回。 数据经过校验后,用一个拷贝暂存器命令会把数据传到非易性( 2E ) RAM 中。 这一过程确保更改存储器时数据的完整性。 图 DS18B20 存储器图 暂存器的结构为 8 个字节的存储器。 头两个字节包含测得的温度信息。 第三和第四字节是 TH和 TL 的拷贝,是易失性的,每次上电复位时被刷新。 下面两个字节没有使用,但是在读回数据时,它们全部表现为逻辑 1。 第七和第八字节是计数寄存器,它们可以被用来获得更高的温度分辨力(见 “ 测温操作 ” 一节)。 还有一个第九字节,可以用读暂存器命令读出。 这个字节是以上八个字节的 CRC 码。 CRC 的执行方式如第二个标题 “CRC 发生器 ” 所述。 ( 5) 单线总线系统 单线总线系统包括一个总线控制器和一个或多个从机。 DS18B20 是从机。 关于这种总线分三个题目讨论:硬件结构、执行序列和单线信号(信号类型和时序)。 单线总线只有一条定义的信号线;重要的是每一个挂在总线上的器件都能在适当的时间驱动它。 为此每一个总线上的器件都必须是漏极开路或三态输出。 DS18B20 的单总线端口( I/O 引脚)是漏极开路式的,内部等效电路见图。 一个多点总线由一个单线总线和多个挂于其上的从机构成。 单线总线需要一个约 5KΩ 的上拉电阻。 17 50 12/21/2020 图 单总线接线图 单线总线的空闲状态是高电平。 无论任何理由需要暂停某一执行过程时,如果还想恢复执行的话,总线必必须停留在空闲状态。 在恢复期间,如果单线总线处于非活动(高电平)状态,位与位间的恢复时间可以无限长。 如果总线停留在低电平超过 480μs ,总线上的所有器件都将被复位。 通过单线总线端口访问 DS18B20的协议如下: • 初始化 • ROM 操作命令 • 存储器操作命令 • 执行 /数据 初始化 通过单线总线的所有执行(处理)都从一个初始化序列开始。 初始化序列包括一个 由总线控制器发出的复位脉冲和跟有其后由从机发出的存在脉冲。 存在脉冲让总线控制器知道 DS1820 在总线上且已准备好操作。 ROM 操作命令 一旦总线控制器探测到一个存在脉冲,它就可以发出 5个 ROM命令中的任一个。 所有 ROM 操作命令都 8 位长度。 ( 1) Read ROM [33h] : 这个命令允许总线控制器读到 DS18B20的 8位系列编码、唯一的序列号和 8 位 CRC 码。 只有在总线上存在单只 DS1B820 的时候才能使用这个命令。 如果总 线 上有不止一个从机,当所有从机试图同时传送信号时就会发生数据冲突(漏极开路连在一起 开成相与的效果)。 ( 2) Match ROM [55h]: 匹配 ROM 命令,后跟 64 位 ROM 序列,让总线控制器在多点总线上定位一只特定的 DS18B20。 只有和 64 位 ROM 序列完全匹配的 DS1820才能响应随后的存储器操作命令。 所有和 64 位 ROM 序列不匹配的从机都将等待复位脉冲。 这条命令在总线上有单个或多个器件时都可以使用。 ( 3) Skip ROM [CCh] : 这条命令允许总线控制器不用提供 64 位 ROM 编码就使用存储器操作命令,在单点总线情况下 又 节省时间。 如果总线上不止一个从机,在 Skip ROM 命令之 后跟着发一条读命令,由于多个从机同时传送信号,总线上就会发生数据冲突(漏极开路下拉效果相当于相与)。 ( 4) Search ROM [F0h] : 当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的 64位 ROM 编码。 搜索 ROM 命令允许总线控制器用排除法识别总线上的所有从机的 64 位编码。 ( 5) Alarm Search [ECh] : 这条命令的流程图和 Search ROM 相同。 然而,只有在最近一次测温后遇到符合报警条件的情况, DS18B20才会响应这条命令。 报警条件定义为温度高于 TH 或低 于 TL。 只要 DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。 表 2: ROM 指令表 指 令 约定代码 功 能 18 50 12/21/2020 读 ROM 33H 读 DS1820 温度传感器 ROM 中的编码(即 64位地址) 符合 ROM 55H 发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备。 搜索 ROM 0FOH 用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。 为操作各器件作好准备。 跳过 ROM 0CCH 忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。 适用于单片工作。 告警搜索命令 0ECH 执行后只有温度超过设定值上限或下限的片子才做出响应。 表 2: RAM 指令表 指 令 约定代码 功 能 温度变换 44H 启动 DS1820 进行温度转换, 12 位转换时最长为 750ms( 9位为 )。 结果存入内部 9 字节 RAM 中。 读暂存器 0BEH 读内部 RAM 中 9字节的内容 写暂存器 4EH 发出向内部 RAM 的 4字节写上、下限温度数据 命令,紧跟该命令之后,是传送两字节的数据。 复制暂存器 48H 将 RAM中第 3 、 4 字节的内容复制到 EEPROM中。 重调 EEPROM 0B8H 将 EEPROM 中内容恢复到 RAM 中的第 3 、 4字节。 读供电方式 0B4H 读 DS1820 的供电模式。 寄生供电时 DS1820发送“ 0 ”,外接电源供电 DS1820 发送“ 1 ”。 I/O 信号 : DS18B20 需要严格的协议以确保数据的完整性。 协议包括几种单线信号类型:复位脉冲、存在脉冲、写 0、写 读 0和读 1。 所有这些信号,除存在脉冲外,都是 由总线控制器发出的。 和 DS18B20 间的任何通讯都需要以初始化序列开始,初始化序列见图。 一个复位脉冲跟着一个存在脉冲表明 DS18B20 已经准备好发送和接收数据(适当的 ROM 命令和存储器操作命令)。 19 50 12/21/2020 图 初始化序列 时序图 存储器操作命令 ( 1) Write Scratchpad [4E] : 这个命令向 DS18B20 的暂存器中写入数据,开始位置在地址 2。 接下来写入的两个字节将被存到暂存器中的地址位置 2 和 3。 可以在任何时刻发出复位命令来中止写入。 ( 2) Read Scratchpad [BEh] : 这个命令读取暂存器的内容。 读取将从字节0开始,一直进行下去,直到第 9(字节 8, CRC)字节读完。 如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取 . ( 3) Copy Scratchpad [48h] :这条命令把暂存器的内容拷贝到 DS18B20的 2E存储器里,即把温度报警触发字节存入非易失性存储器里。 如果总线控制器在这条命令之后跟着发出读时间隙,而 DS1820 又正在忙于把暂存器拷贝到 2E 存储器,DS1820 就会输出一个 “0” ,如果拷贝结束的话, DS18B20 则输出 “1”。 如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持 10ms。 ( 4) Convert T [44h] : 这条 命令启动一次温度转换而无需其他数据。 温度转换命令被执行,而后 DS18B20 保持等待状态。 如果总线控制器在这条命令之后跟着发出读时间隙,而 DS18B20 又忙于做时间转换的话, DS18B20 将在总线上输出“0” ,若温度转换完成,则输出 “1”。 如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持 500ms。 ( 5) Recall 2E [B8h] : 这条命令把报警触发器里的值拷回暂存器。 这种拷回操作在 DS18B20 上电时自动执行,这样器件一上电暂存 器里马上就存在有效的数据了。 若在这条命令发出之后发出读时间隙,器件会输出温度转换忙的标识: “0”=忙, “1”= 完成。 ( 6) Read Power Supply [B4h] : 若把这条命令发给 DS18B20 后发出读时间隙,器件会返回它的电源模式: “0”= 寄生电源, “1” = 外部电源。 读 /写时间隙 : DS1820 的数据读写是通过时间隙处理位和命令字来确认信息交换。 ( 1) 写 /读 时间隙 : 当主机把数据线从逻辑高电平拉到逻辑低电平的时候,写时间隙开始。 有两种写时间隙:写 1 时间隙和写 0 时间隙。 所有写时间隙必须最 少持续 60μs ,包括两个写周期间至少 1μs 的恢复时间。 I/O 线电平变低后, DS18B20 20 50 12/21/2020 在一个 15μs 到 60μs 的窗口内对 I/O 线采样。 如果线上是高电平,就是写 1,如果线上是低电平,就是写 0(见图 ) 图 写时序图 图 读时序图 时序: 主机使用时间隙 (time slots)来读写 DSl8B20 的数据位和写命令字的位 (1)初始化 主机总线 t0 时刻发送一复位脉冲 (最短为 480us 的低电平信号 )接着在 t1 时刻释放总线并进入接收状态 DSl8B20 在检测到总线的上升沿之后等待 1560us 接着DS18B20 在 t2 时刻发出存在脉冲 (低电平持续 60240us)。 RESET PUSH B。 保存 B 寄存器 PUSH A。 保存 A 寄存器 MOV A,4。 设置循环次数 CLR。 发出复位脉冲 MOV B,250。 计数 250 次 DJNZ B,$。 保持低电平 500us SETB。 释放总线。通信电子设计精品]基于at89c51单片机与pc机串口通信的温度控制系统论文
相关推荐
2、 增收 125?30 元,而且该品种米质十分优良,干饭、稀饭适口性好,同时具有独特的香味,不愧为中国第一优质香稻。 2、农艺性状好、易于栽培中香 1 号品种于 6 月 20 日播种,7 月 12 日插秧,10月 20 日成熟,全生育期 123 天,属晚稻中熟品种,易于晚稻趋利避害,安全过关,稳中求高的稻作栽培。 田间考种,株高 103效穗 穗,平均穗粒数 ,结实率 87,千粒重 25 克
,,,,,,,,,巷 ,,,,,,,,,,,,,,, 弄 ,,,,,,,,,号 ,,,,,,,,,楼 (请要填写分区 ) 最高学历 ,,O国中 (含以下 ),,O高中 ,,,O专科 ,,,O 大学 ,,,O 研究所 ,,,O博 士 ,,,,O 在学 O肄业 O毕业 就 读 时 间 :,,, 公元 _______ 年 _____ 月 ,,~,, 公元 _______ 年 _____,,月 ,,,,
图 110kV 电压侧接线方案 地面积大,设备多,投资大。 方案二简单清晰,操作方便,不易误操作,设备少,投 资小,占地面积小,但是运行可靠性和灵活性比方案一稍差。 本变电站为地区性变电 站,电网特点是水电站发电保证出力时能满足地区负荷的需要,加上小火电,基本不 9 需要外系统支援,电源主要集中在 35kV 侧, 110kV 侧是为提高经济效益及系统稳定 性而倒有一回线路与华中大 电网联系
ll bef or e t he m odif ic ation, power consum pt ion can be r educed by 1500 t ons of elect r olyt ic alum inum, and pr oj ect envir onment al pr ot ect ion and ener gy saving ef f ect is obvious.