您的位置:控制工程论坛网论坛 » 嵌入式系统 » 单片机来电显示器的设计与实现

sj1127

sj1127   |   当前状态:离线

总积分:887  2025年可用积分:0

注册时间: 2007-03-08

最后登录时间: 2009-04-02

空间 发短消息加为好友

单片机来电显示器的设计与实现

sj1127  发表于 2008/9/22 14:25:16      1558 查看 2 回复  [上一主题]  [下一主题]

手机阅读

[关键词] :

  主叫识别信息传送 CID ( Calling Identity Delivery )是向被用户电话提供的一种服务业务。其方法是发端交换机将主叫号码等信息传送给终端交换机,终端交换机再将信息传送给被叫用户终端,如图 1 所示。

  主叫号码信息常采用频移键控( FSK )方式,在被叫挂机( On_Hook )或摘机通信状态下传送。挂机状态下传送方法是终端交换机将主叫信息在第一次振铃和第二次振铃期间传给被叫用户。对此已有相应的协议标准,例如: Bell 202 、 CCITT V.23 1200 波特率 FSK 数据传输标准。主叫信息传送的数据格式有 2 种:单数据消息格式( Single Data Message Format )和复合数据消息格式( Multple Data Message Format )。本文介绍的主叫号码显示器采用前者。挂机状态下接收的单消息帧格式如图 2 所示

  图 2 中:①信道占用信号由 1 组 300 个连续的“ 0 ”和“ 1 ”交替的位组成,其第一个比特“ 0 ”最后一个比特为“ 1 ”。②标志信号由 80 个标志位组成。③标志位由 0 ~ 10 个逻辑“ 1 ”组成。④对于消息类型、消息长度、消息字、校验字这些数据字,每个数据字之前加 1 位“ 0 ”作为起始位,数据字之后加 1 位“ 1 ”作为结束位(即每个字占 10 个比特)。数据传送时信道占用信号首先发送,每个数据字中低位在前发送。

  1 硬件设计实现

  主叫号码显示器选用的是 Amotrola 公司的 MC145447 芯片作为主叫识别信息解调器件,单片机选用 AT89C52 。整个电路的原理框图如图 3 所示。

  CM145447 满足 Bell 202 、 CCITT V.23 1200 波特率 FSK 数据传输标准,其内部含有铃流检测电路,铃流检测输出信号(低电平脉冲)接到 MCU 复位引脚“ RST ”上。 MC145447 把逻辑“ 1 ” =1200 ± 12Hz 、逻辑“ 0 ” =2200 ± 22Hz 、传输速率为 1200bps 的 FSK 信号解调成串行异步二进制数据并输入至 MCU 的串行接收口。外部 EEPROM 用于存储多达 120 条的主叫识别信息。液晶显示模块 LCD 用来显示主叫号码、日期、时间等信息。按键有 3 个:“ DEL ”、上“ UP ”、下“ DOWN ”分别用于删除、查阅主叫信息MCU 工作在掉电、空闲、正常运行 3 种状态。平时 MCU 工作在掉电“ power down ”状态,功耗很低。第 1 次铃流信号到来时, MC145447 中的铃流检测电路对 MCU 输出 1 个低电平复位脉冲,该复位脉冲 MCU 从掉电状态进入正常工作状态。第 1 次振铃和第 2 次振铃期间, MC145447 解调出的二进制数据送入 MCU 的串行接收口。 MCU 接收和存储主叫信息数据并在液晶显示模块( LCD )上显示,然后 MCU 进入空闲状态。 MCU 进入空闲状态 1min 后,若无按键按下则进入掉电状态,此时, LCD 上将显示新呼叫(即用户没有查阅过的呼叫)的总个数。

  2 软件设计实现

  主叫号码显示器软件使用汇编语言编写,配合硬件完成主叫信息接收、查阅及删除功能。汇编语言程序主要由主程序、串行中断处理程序、定时器中断处理程序组成。

  上电时, MCU 进入主程序中运行对串口寄存器设置接收波特率等参数,液晶显示模块 LCD 初始化并显示新呼叫总个数,以 0.2s 的定时长度设置定时器参数,对有关程序变量初始化,然后进入掉电状态。主程序框图如图 4 所示。

  图 5 是串行口中断接收处理程序。串行口中断到来时, MCU 将收的串行数据暂存在内部 RAM 中。若收到的信息有误码,则在 LCD 上显示“ ERROR ”;若交换机发来的信息格式为“日期 + 时间 +P+.. ”,则在 LCD 上显示“ PRIVATE ”,表示主叫用户要求本次呼叫不向被叫用户传送其号码;若交换机发来的信息格式为“日期 + 时间 +O+.. ”, LCD 上将显示“ OUT OF AREA ”,表示主叫用户的本次呼叫超出来电显示服务范围。

  若接收的主叫信息正常,则按接收的先后顺序依次存储于 EEPROM 中。当主叫识别信息有重复时,最新呼叫将覆盖前次呼叫;当存储空间全部存满后,按“先进先出”的原则自动删除最先存储的主叫信息。

  图 6 是定时器中断处理程序,实现来电显示器按键处理功能,定时长度为 0.2s 。定时器断到来时,首先检查是否有按键按下。当有按键按下时, MCU 由掉电状态恢复到空闲状态。若在 1.5s 内按 2 次“ DEL ”键,则从 EEPROM 中删除 LCD 当前显示的信息;若连续按“ DEL ”键超过 6s ,则删除 EEPROM 中所有存储信息。按“ UP ”键则把一次接收的主叫信息从 EEPROM 中调出并显示。按“ DOWN ”键则把下一次接收的主叫信息从 EEPROM 中调出并显示。

结束语

  来电显示功能目前已获得普遍使用。本文介绍的来电显示器在进行软、硬设计时充分利用 MCU 的 3 种工作状态,尽可能地降低了功耗;配以 EEPROM 作为存储器件,使得该产品与同类产品相比使用期限有较大的增加(采用电池供电时)。

1楼 0 0 回复
总共 , 当前 /