当前位置:首页 > 单片机 > 单片机
[导读]本文以银行现有排队系统为实例,提出了IIC总线的单片机排队系统接口设计,通过对系统的仿真模拟试验,不仅简化设计电路,减小电路板面积,节省常规设计中的元器件,减少使用各项费用,而且系统能耗、消噪、可靠性等性

本文以银行现有排队系统为实例,提出了IIC总线单片机排队系统接口设计,通过对系统的仿真模拟试验,不仅简化设计电路,减小电路板面积,节省常规设计中的元器件,减少使用各项费用,而且系统能耗、消噪、可靠性等性能得到提高,在MCS-51系列单片机不带IIC总线接口组成的数据测控和智能仪表仪器中,可以通过IIC总线增加系统的接口器件种类,降低系统成本,提高应用系统性能[1-3]。

1 IIC总线

IIC总线(Inter Integrate Circuit Bus)是一种双向二线制总线,由串行时钟线(SCL)与串行数据线(SDA)构成,通过两根线连接不同的具有IIC总线的器件,在不同的器件间传送数据,数据传输速率在高速模式最高可达3.4 Mb/s,既简化了电路设计又提高了硬件使用效率,使IIC总线在嵌入式系统串行传输设计中得到广泛应用,目前主要用于中央控制中心、音频集成电路及视频等数字控制系统。

1.1 IIC总线时序

(1)启动及停止

总线不忙时,时钟线和数据线保持为高电平。启动条件(S)是时钟线在高电平而数据线为下降沿时,停止条件(P)是时钟线处于高电平而数据线为上升沿时,IIC总线启动停止条件如图1所示。

 

 

(2) 数据传送

一个数据位的传送需要一个时钟脉冲,每1 B后加1个标志位,由传送器产生的标志位为高电平时,主设备会产生1个附加的标志位时钟脉冲。数据线SDA上信息只有时钟脉冲为高电平时应该保持数据稳定,否则数据线SDA上的数据会变为控制信号,如图2所示。

 

 

(3) IIC 总线协议

IIC总线进行数据传递前,应先标明接收的设备地址。当IIC总线启动后,一起传送这个地址与第1个被传送字节。

本系统中PCF8563 芯片作为一个从传送器或从接收器,SCL信号线只是输入线,SDA数据线为1条双向的信号线。

1.2 芯片PCF8563概述

PCF8563是经典低功耗实时时钟/日历芯片[4],具有IIC总线接口技术,总线最大传输速度可达400 kb/s,每次写读数据后,内部包含的字地址寄存器就会自动递增,具有功耗低、精度高等特点。PCF8563 具有定时器功能、多种报警功能、中断输出功能及时钟输出功能,可以完成多种定时服务,还可为单片机系统实现看门狗技术,其内部的振荡电路、时钟电路、低电压1.0 V检测电路及IIC两线制总线通讯方式,同时解决了2000年问题,不但使外围电路及其简洁,而且也增加了芯片的可靠,可广泛应用于水表、电表、移动电话、便携仪器、传真机、电池电源等产品领域中。

2 系统设计

2.1 系统需求分析

银行服务大厅设有8个业务服务窗口,服务窗口属性分为五类服务业务进行描述,可以进行个人理财业务、对公业务、VIP银行卡业务、个人存取款储蓄和代收手机费、水电费等混合业务。

排队系统性能要求:服务大厅入口处摆放排队机,供储户按时间顺序索取排队编号,打印编号;服务窗口内人员可以通过按钮实现叫号;叫号后在屏幕上显示编号并通过扬声器连续两次播放编号信息;工作人员通过后台可以进行排队系统的相关(功能、模式、菜单等)设置。

2.2 系统硬件设计

单片机排队系统由银行柜台操作模块、存储器模块、柜台叫号模块、液晶显示模块、储户操作模块组成,系统结构如图3所示。系统中IIC电路用于参数存储器(E2PROM)和实时精确时钟等接口的应用[2]。

 

 

实时精确时钟使用较低功耗的CMOS实时日历/时钟芯片,通过分频器(用于提供源时钟给实时时钟RTC)、定时器、可编程时钟输出、掉电检测器、报警器和IIC总线接口,来具体设置系统必需的精准时钟信号。所有的数据和地址通过IIC总线接口串行传输,每次写读数据后,字地址寄存器就会自动递增[5]。

参数存储器(E2PROM)[6]使用较低功耗的CMOS串行IIC电路,通过片内存储空间,记录柜台操作和储户排队等信息。其操作控制完全遵循IIC协议。

3 系统总线软件模拟的实现方法

排队系统原理图如图4所示,由P3.4、P3.3模拟串行总线的SDA端及SCL输出端,构成模拟的IIC串行总线系统。总线功能的实现除了简单硬件连接,大部分功能通过软件模拟来实现,下面给出部分总线常用子程序,这些子程序通用性较好,基本适用于大部分IIC总线接口的芯片[2-3]。

 

 

3.1 总线启动、停止函数

void IIC_Start(void)
{
IIC_SCL=1;
IIC_Delay();
IIC_SDA=1;
IIC_Delay();
IIC_SDA=0;
IIC_Delay();
IIC_SCL=0;
IIC_Delay();
}
void IIC_Stop(void)
{
IIC_SDA=0;
IIC_Delay();
IIC_SCL=1;
IIC_Delay();
IIC_SDA=1;
IIC_Delay();
IIC_SCL=1;
IIC_Delay();
}

3.2 从IIC器件指定位置读若干字节

bit RetBit;
unsigned char i;
IIC_Start(); /*启动总线*/
RetBit=IIC_Write_Byte(Device_Addr);
/*发送器件从地址*/ if(RetBit==0)
return(0);
RetBit=IIC_Write_Byte(Mem_Addr);
/*发送器件子地址*/ if(RetBit==0)
return(0);
IIC_Stop(); /*结束总线*/    IIC_Start(); /*重新启动总线*/
RetBit=IIC_Write_Byte(Device_Addr+1);
if(RetBit==0)
return(0);
for(i=0;i<Num-1;i++)
{
*DataPointer=IIC_Read_Byte(); /*接收数据*/
IIC_Ack(0); /*发送应答位*/
DataPointer++;
}
*DataPointer=IIC_Read_Byte(); /*接收数据*/
IIC_Ack(1);
IIC_Stop(); /*结束总线*/
return(1);

3.3 向IIC发送1字节函数

bit Ack_Flag;
unsigned char i;
for(i=0;i<8;i++) /*要传送的数据长度为8位*/
{
IIC_SDA=(bit)((Data<<i)&0x80);
/*依次判断待发送位高低*/
IIC_Delay();
IIC_SCL=1;
/*置时钟线为高,通知E2PROM开始接收数据位*/
IIC_Delay();
IIC_SCL=0;
IIC_Delay();
}
IIC_SDA=1;
/*8位数据发送完后释放数据线,准备接收应答位*/
IIC_Delay();
IIC_SCL=1;
IIC_Delay();
if(IIC_SDA)
Ack_Flag=0; /* E2PROM无应答*/    else
Ack_Flag=1; /*数据成功发送*/
IIC_SCL=0;
IIC_Delay();
return(Ack_Flag); /*返回E2PROM应答标志*/

3.4 系统仿真

经过软件分析后,即可利用keil c集成开发环境uVision2对用C语言编写的程序进行编译、调试,通过JTAG口将编译好的程序烧写到单片机中,完成所需排队功能。系统经过仿真测试,得到银行入口处摆放排队机供储户索取排队编号,打印编号;银行柜台内工作人员通过按钮可以实现叫号;叫号后在大屏幕显示上显示并通过喇叭播放叫号信息;银行工作人员可以通过后台进行系统的相关设置。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Micro热插拔技术作为现代电子设备中常见的一种接口设计,其便捷性和灵活性得到了广泛应用。然而,关于Micro热插拔是否需要断电的问题,一直存在争议。本文将详细探讨Micro热插拔的原理、优缺点,以及在不同情况下是否需要...

关键字: Micro热插拔技术 现代电子设备 接口设计

I2C(Inter-Integrated Circuit)总线是Philips公司推出的一种双向二线制同步串行总线,仅用两根线即可实现器件之间的数据传送。目前很多芯片集成了I2C总线接口,如CYGNAL公司的C805IF...

关键字: I2C总线 引脚功能 时序

其一,是把系统所需的外设和单片机连接起来,使单片机系统能与外界进行信息交换。如通过键盘、A/D 转换器等外部设备向单片机送入数据、命令等有关信息,去控制单片机运行;通过显示器、发光二极管、打印机等设备把单片机处理的结果送...

关键字: 单片机 外部总线 接口设计

摘 要 :视频监控系统是计算机应用中的重要领域之一。数字化摄像头网络化之后,监控系统正在不断引入新的功能,为使现有监控系统能更好地应对复杂环境,满足不同监控要求,就需要追加新功能,在系统架构与设计上进行调整。因此,如何将...

关键字: 智能监控 系统架构 模块化设计 接口设计 数据传输 深度相机

来源:电子电路设计一、前言I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。二、I2C总线开发设计需要注意点1、总线容量及驱动能力I2C总线的外围...

关键字: I2C总线

01总线容量与驱动能力I2C总线的外围扩展器件都是CMOS器件,总线有足够的电流驱动能力,因此总线上扩展的节点数不由电流负载能力决定,而由电容负载确定。总线上每个实际节点器件的总线接口都有一定的等效电容,等效电容的存在会...

关键字: I2C总线

摘要:随着I2C总线应用的越来越广泛,其电路简单,编程方便,易于系统标准化与维护的优点也日益显现出来。 文章在分析了I2C总线的基本概念和工作原理的基础上,重点介绍了基于Wolfson音频SoC的I2C总线接口的系统结...

关键字: I2C总线 音频 SoC Wolfson

前面我们学习了RTT的ADC设备的使用,文章链接: RT-Thread ADC设备学习笔记 I2C的基本原理之前在公众号就有相应的文章了,很早之前发的,接下来我们来学习RT-Thread I2C总线设备的使用!这是RTT...

关键字: I2C总线 学习笔记 RT-Thread

关注、星标 嵌入式客栈 ,干货及时送达 [ 导读] 本文通过阅读内核代码,来梳理一下I2C子系统的整体视图。在开发I2C设备驱动程序时,往往缺乏对于系统整体的认识,没有一个清晰的思路。所以从高层级来分析一下I2C系统的设...

关键字: 内核 I2C总线

1、引言 can总线是由德国bosch公司为现实汽车测量和执行部件之间的数据通讯而设计的、支持分布式控制及实时控制的串行通讯网络。can总线通讯的波特率可高达1mbps,最远距离可达10

关键字: 卫星 通信接口 CAN总线 接口设计
关闭
关闭