《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于IIC總線的銀行排隊系統接口實現
基于IIC總線的銀行排隊系統接口實現
來源:微型機與應用2012年第4期
靳 越1,2, 張 珂2,3, 許明麗4
(1. 張家口職業技術學 院電氣工程系, 河北 張家口075000;2. 華北電力大學 電氣與電子工
摘要: 介紹了IIC總線芯片基本性能及時序、總線結構,設計了銀行排隊系統,介紹帶IIC總線的芯片PCF8563,通過軟件的方法,實現IIC總線在MCS-51系統中的使用,有效利用了現有資源,實現排隊功能,提高銀行工作效率,減少顧客等待時間。系統通過keil c進行仿真實現銀行排隊預期功能。
Abstract:
Key words :

摘   要: 介紹了IIC總線芯片基本性能及時序、總線結構,設計了銀行排隊系統,介紹帶IIC總線的芯片PCF8563,通過軟件的方法,實現IIC總線在MCS-51系統中的使用,有效利用了現有資源,實現排隊功能,提高銀行工作效率,減少顧客等待時間。系統通過keil c進行仿真實現銀行排隊預期功能。
關鍵詞: 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口將編譯好的程序燒寫到單片機中,完成所需排隊功能。系統經過仿真測試,得到銀行入口處擺放排隊機供儲戶索取排隊編號,打印編號;銀行柜臺內工作人員通過按鈕可以實現叫號;叫號后在大屏幕顯示上顯示并通過喇叭播放叫號信息;銀行工作人員可以通過后臺進行系統的相關設置。  
參考文獻
[1] 靳越,周芝田. 基于單片機的銀行排隊系統設計與研究[J].張家口職業技術學院學報,2010(1):50-52.
[2] 閆效鶯.嵌入式Linux下鍵盤驅動的設計與實現[J].自動化技術與應用,2010(03):28-31.
[3] 李亞民. 計算機組成與系統結構[M]. 北京:清華大學出版社,2000.
[4] Xiong Zhihui, Research on techniques of platform-based  SoC hardware/software co-design[D].Changsha:National University of Defense Technology,2004.
[5] 陳志輝. I2C總線在MCS51系列單片機數據采集系統中的實現[J]. 微計算機信息,2005,21(1):67-68.
[6] 朱華生,葉軍.嵌入式系統IIC設備驅動程序設計玉實現[J].微計算機信息,2006,22(10-2):170-172.
[7] Philips. The I2C-BUS Specification V2.1, 2000.
[8] 邢勝春,鄭華磊.用IIC總線顯示功能模塊狀態信息的電視裝置[P].中國:CN201018580,2008.02.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日本一本在线视频 | 可以免费观看的黄色网址 | 亚洲欧美在线视频 | 日本乱人伦片中文字幕三区 | 五月综合色 | 亚洲人成网站在线观看播放动漫 | 日本草草 | 久久伊人影视 | 香蕉视频免费网站 | 日日夜夜影院 | 亚洲成人激情在线 | 一区二区三区日韩免费播放 | 成人看片在线 | 久久天堂 | 亚洲欧美日韩成人网 | 性色综合| 看黄网站在线看 | 日韩欧美一区二区三区中文精品 | 夜间视频在线观看 | 色综合天天综合网国产成人网 | 欧美极品在线 | 五月综合色 | 日本动漫的18涩涩视频 | 国产成人在线免费视频 | 成人免费观看www视频 | 一级特黄aaa大片在线观看 | 最近更新免费中文字幕大全 | 国产精品一一在线观看 | 看片视频在线观看 | 国产精品麻豆一区二区三区v视界 | 欧美乱性视频 | 久久精品国产精品亚洲综合 | 91涩涩视频 | 三级网站日本 | 日韩亚洲一区二区三区 | 亚洲日本三级 | 国产日韩欧美不卡www | 久久精品视频免费 | 亚洲美女中文字幕 | 欧美日本道免费二区三区 | 亚洲欧美日韩网站 |