




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5附页5附页.1.223.33556678•889•9101引言 2项目设计实现功能 2.1交通灯控制要求 2.2液晶显示器控制 项目实现方案 3.1项目设计整体思路 3.2设计原理 CPU定时器原理 DSP外设中断扩展模块.3.2.3发光二极原理 3.2.4TMS320F28XDSP的I/O3.2.5液晶显示器控制原理程序设计 4.1程序总体设计 4.2程序编写(见附页) 心得体会 基于DSF实现道路交通灯控制系统设计摘要:DSP数字信号处理,是一门涉及多学科而又广泛应用于许多领域的新兴学科。随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法。本次设计是基于dsp原理设计交通灯控制系统软硬件系统,利用发光二极管亮灭模拟交通信号,数码管倒计时时间,利用TMS320F2812DSP片上定时器产生时钟计数,设计模拟实际生活中的十字路口交通灯。关键字:DSP;TMS320F2812;发光二极管;交通灯;Abstract:DSPdigitalsignalprocessing,isamultidisciplinaryandwidelyappliedinmanyfieldsoftheemergingdiscipline.Alongwiththecomputerandtherapiddevelopmentofinformationtechnology,digitalsignalprocessingtechnologytoemergeasthetimesrequireanddeveloprapidly.Digitalsignalprocessingisthroughtheuseofamathematicalskillstoperformtheconversionorextractionofinformation,todealwithrealsignalmethod.ThedesignisbasedontheprincipleofDSPdesignoftrafficlightcontrolsystemsoftwareandhardwaresystem,usinglight-emittingdiodestoeliminatesimulatedtrafficsignalcountdowntime,digitaltube,theuseofTMS320F2812DSPon-chiptimergeneratesaclockcounting,designedtosimulatetheactuallifeofthecrossroadstrafficlights.Keyword:DSP;TMS320F2812;lightemittingdiode;trafficlights;1引言交通是经济、社会发展的基础性产业,是社会、经济活动中人流、物流、资金流和信息流的主要流动方式。现代社会中,如果没有高效运转的交通运输体系,就不可能有经济的持续发展。然而,随着社会经济的发展,机动车辆迅速增加,人们在赚取由机动车辆所带来的巨额利润以及充分享受汽车带来的巨大便利的同时,越来越被交通拥堵、交通事故频发、环境污染加剧和燃油损耗上升等诸多问题所困扰。随着交通的不断发展和汽车化进程的加快,交通拥挤加剧,交通事故频发,交通环境恶化,已经成为引人注目的城市问题之一。交通问题不仅在发展中国家,就在发达国家也是一个令人困扰的严重问题。众所周知,缓解交通拥挤的最直接和最有效办法是提高路网的通信能力。但无论哪个国家的大城市,不可能无限制地修建道路,不论是资金
因素还是土地因素,都限制了道路的无节制增长。因此,无限制地修建道路难满足日益增长的交通需求。与此同时,通过限制车辆增加削减交通需求也受到客观因素的制约而无法取得满意的结果。事实上,由于交通系统是一个相当复杂的大系统,无论单独从车辆方面考虑还是从道路方面考虑,都很难从根本上解决问题。道路交通系统是一个地区、一个城市的主要组成部份,这个系统的运行状况如何,直接反映了一个地区、一个城市的现代化管理水平。在这一系统中,道路不仅仅是易变化的部分,而其它组成部分则存在着较大的可变性和随机性。只有对这一系统的组成及其运行机理进行科学客观的分析研究,对能制定出科学有效的管理和控制对策,从而保障系统的有效运行。2项目设计实现功能2.1交通灯控制要求交通灯分红黄绿三色,东、南、西、北各一组,用灯光信号实现对交通的控制:绿灯信号表示通行,黄灯表示警告,红灯禁止通行,灯光闪烁表示信号即将改变。计时显示:液晶屏幕上8X8点阵显示0-9计数。正常交通控制信号顺序:正常交通灯信号自动变换:南北方向绿灯,东西红灯(20秒)。南北方向绿灯闪烁。南北方向黄灯。南北方向红灯,东西方向黄灯。东西方向绿灯(20秒)。东西方向绿灯闪烁。(7)东西方向黄灯。(7)东西方向黄灯。返回⑴循环控制。紧急情况处理:模仿紧急情况(重要车队通过、急救车通过等)发生时,交通警察手动控制⑴当任意方向通行剩余时间多于10秒,将时间改成10秒。⑵正常变换到四面红灯(20秒)。⑶直接返回正常信号顺序的下一个通行信号(跳过闪烁绿灯、黄灯状态)。2.2液晶显示器控制本次设计使用ICETEK-F2812-A板,ICETEK-F2812-A是一块以TMS320F2812DSP为核心的DSP扩展评估板,它通过扩展接口与实验箱的显示/控制模块连接,可以控制其各种外围设备。液晶显示模块的访问、控制是由2812DSP对扩展扩展接口的操作完成。控制扩展口的寻址:命令控制扩展接口的地址为 0x108001,数据控制扩展接口的地址为0x108003和0x108004,辅助控制扩展接口的地址为0x108002。可以观察到液晶显示从0到9的计数。灵活使用控制字,可以实现复杂多变的显示。当使用点阵图形显示时需要在DSP内存中建立图形存储缓冲;适当更新显示可取得动画效果。在实际生活中观察点阵显示的霓虹灯广告、交通指示牌、报站牌等领会这种控制的具体应用。3项目实现方案3.1项目设计整体思路根据DSP勺硬件中断、定时器、I/O访问原理。用定时器定时。用I/O口控制红绿黄灯的开关,用硬件中断模拟紧急情况发生(如:急救车,消防车)。有紧急情况发生,两向全红,以便让紧急车通过。紧急车通过后,交通的恢复中断前的状态。中断服务流程设计总流程图3.2设计原理3.2.1CPU定时器原理F2810/F2812芯片内部有3个32位CPI定时器(TIMER0/1/2),其中定时器1和定时器2预留给实时操作系统使用(如DSPBIOS,只有CPI定时器0用户可以在应用程序中使用。预留给实时操作系统使用(如定时器功能框图如下:在F281x在F281x芯片中,向CPI申请中断的定时器中断信号(TINT0、TINT1及TINT2)连接方式如下图:liTtlutintq式如下图:liTtlutintq为保证定时器正常,需要进行一下操作:首先将计数值写入32位计数寄存器(TIMH:TIM)内,该计数值放在周期寄存器(PRDHPRD中;然后按SYSCLOCKO的频率对计数值进为保证定时器正常,行减计数。当计数器的值计到0时,定时器会产生一个中断脉冲输出。
3.2.2DSP外设中断扩展模块设计了一个专门处理外),叫做外设中断控2812的CPI为了能够及时有效的处理好各个外设的中断请求,设计了一个专门处理外),叫做外设中断控设中断的扩展模块(thePeripheralInterruptExpansionblock制器PIE,它能够对各种中断请求源(例如来自于外设或者其他外部引脚的请求)做出判断以及相应的决策。PIE可以支持96个不同的中断,这些中断分成了12个组,每个组有8个中断,而且每个组都被反馈到CP内核的12条中断线中的某一条上(INT1-INT12)。PIE目前只使用了96个终端中的45个,其他的等待将来的功能扩展。外设级APIE级+JCPU级PIE级以及CPUK,对于某一个具体的外PIE级以及CPUK,对于某一个具体的外设中断请求,任意一级的不许可,CP最终都不会执行该外设中断。3.2.3发光二极原理显示/控制模块上的发光二极管是由连接在F2812DSP扩展扩展接口上的寄存器EWR和SNR控制的。这两个寄存器均为6位寄存器,其位定义见下表:
EWR:bitsbit4bitsEWR:bitsbit4bitsbit?bitlbiiO冻-红东潢东■绿西■红西■黄西■绿SNR:bit?bit4bit3bit?bitlbiiO南■红南■黄甫■绿北■红北■黄北■绿两个寄存器的地址均映射到F2812DSP的扩展空间,地址为108007H,DSP通过对扩展区域该地址的写操作来修改两个寄存器上各位的状态,当寄存器某位取‘1’值时,相应指示灯被点亮,取‘0’值则熄灭。当写入108007H的数据(8位有效值)的高两位为‘00'时,数据的低6位将写入EWR寄存器;当高两位的值为‘01’时,写入SNR寄存器。324TMS320F28XDSP的I/OTMS320F28)DSP的I/O空间大部分被保留用于外部扩展。在扩展时一般将带有控制能的寄存器或分离地址访问的存储单元的地址映射到 I/O空间,访问这部分的单元又称I/O端口访问。例如:可将控制指示灯组的寄存器或锁存器映射到一个 I/O端口地址上;A/D、D/A等专用芯片控制端和状态寄存器也常映射到I/O端口上。总之,在I/O空间中扩展的设备一般重点用于控制,而使用大片连续存储空间的存储器单元一般映射到数中扩展的设备一般重点用于控制,而使用大片连续存储空间的存储器单元一般映射到数3.2.5液晶显示器控制原理显示开关:0x3f打开显示;0x3e关闭显示;设置显示起始行:0x0c0+起始行取值,其中起始行取值为0至63;设置操作页:0x0b8+页号,其中页号取值为0-7;设置操作列:0x40+列号,其中列号为取值为0-63;写显示数据:在使用命令控制字选择操作位置(页数、列数)之后,可以将待显示的数据写入液晶显示模块的缓存。将数据发送到相应数据控制扩展接口即可。液晶显示器与DSP的连接:数据信号的传送:由于液晶显示模块相对运行在8MHz主频下的DSP属于较为慢速设备,连接时需要考虑数据线上信号的等待问题;电平转换:由于DSP为3.3V设备,而液晶显示模块属于5V设备,所以在连接控制线、数据线时需要加电平隔离和转换设备。4程序设计4.1程序总体设计①根据设计要求,由于控制是由不同的各种状态按顺序发生的 ,我们可以采用状态机制控制方法来解决此问题。这种方法是:首先列举所有可能发生的状态;然后将这些状态编号,按顺序产生这些状态;状态延续的时间用程序控制,对于突发情况可采用在正常顺序的控制中插入特殊控制序列的方式完成。②定时器的设定,VC5509A定时器是由一个4位的预定标值PSC和一个16位的减法计数的计数器TIM组成。在实际工作中首先是每经过一个周期PSC值减1,一直减到0后TIM开始减1,直到减到0后的第一个周期,计数器会向CPU发出中断请求。③突发事件设置,在实际交通过程中会出现突发状况,比如说有救护车或者110紧急车要通过,此时就可以通过小键盘进行突发状况模拟。通过按键进入到中断服务子程序,相当于原来先要通过的车辆在突发状况来了以后就要先让紧急车辆通过。這吋ii.中商疫割吾戸».丄件工»*~I4.2程序编写(见附页)5心得体会随着信息技术的飞速发展,数字信号处理技术已逐渐发展成为一门主流技术,它在电子信息,通信,软件无线电,制动控制,仪表仪器,信息家电等高科技领域得到了越来越广泛的应用。数字信号处理器由于运算速度快,具有可编程特性和接口灵活的特点,使的它在许多电子产品的研制,开发与应用中,发挥着越来越重要的作用。采用DSP芯片来实现数字信号处理系统更是当前的发展趋势。通过做基于DSP的交通灯的设计,进一步熟悉DSP芯片及其开发环境CCS的功能。同时对当前交通控制的现状有了进一部的了解。为以后的学习打下了坚实的基础。随着科学技术的发展及各门学科的相互融合,DSP将有更为广阔的应用前景。交通控制也会更智能,为人们的出行提供更多的便利。附页#include"scancode.h"#defineSPSA0*(unsignedint*)0x38#defineSPSD0*(unsignedint*)0x39#defineREGISTERCLKMD(*(unsignedint*)0x58)#define#define#define#define#defineTIMPRDTCRIMRIFR*(int*)0x24*(int*)0x25*(int*)0x26*(int*)0x0*(int*)0x1#defineCTRGRport8000#defineCTRLCDCMDRport8001#defineCTRKEY port8001#defineCTRCLKEYport8002#defineCTRLCDCRport8002#defineCTRLCDLCRport8003#defineCTRLCDRCRpoil8004#defineCTRLA#defineCTRLRport8005port8007#definePMST*(int*)0x1dnStatusNSGreenEWRed160nStatusNSFIashEWRed184#define#define#definenStatusNSYellowEWRed200#definenStatusNSRedEWYellow216#definenStatusNSRedEWGreen376#definenStatusNSRedEWFlash400#definenStatusNSRedEWYellow1416#definenStatusNSYellowEWRed1432#definenTotalTime448#definenStatusHold160voidInitDSP();voidInitTimer();voidInitICETEKCTR();voidinterrupttime(void);voidinterruptxint2(void);//XINT2中断服务程序voidSetLEDArray(intnNumber);//修改显示内容voidRefreshLEDArray();//刷新显示voidEndICETEKCTR();voidTurnOnLCD();voidLCDCLS();voidDelay(unsignedintnDelay);,0x92,0x6C,0x00},{0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00},{0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00},{0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00},{0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00},{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00},{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}};main(){intnWork1,nWork2,nWork3,nWork4,tKey;intnNowStatus,nOldStatus,nOldTimeCount,nSaveTimeCount,nSaveStatus;unsignedintnScanCode;#definestatusNSGreenEWRed0#definestatusNSFlashEWRed1#definestatusNSYellowEWRed2#definestatusNSRedEWYellow3#definestatusNSRedEWGreen4#definestatusNSRedEWFlash5#definestatusHold6#defineLCDDELAY1#defineLCDCMDTURNON0x3f#defineLCDCMDTURNOFF0x3e#defineLCDCMDSTARTLINE0xc0#defineLCDCMDPAGE0xb8#defineLCDCMDVERADDRESS0x40ioportunsignedintport3004;//CTR扩展寄存器定义ioportunsignedintport8000;ioportunsignedintport8001;ioportunsignedintport8002;ioportunsignedintport8003;ioportunsignedintport8004;ioportunsignedintport8005;ioportunsignedintport8007;unsignedintuWork,nTimeCount;unsignedintuLightStatusEW,uLightStatusSN;unsignedintbHold;unsignedcharledbuf[8],ledx[8];unsignedcharled[40]={0x7E,0x81,0x81,0x7E,0x00,0x02,0xFF,0x00,0xE2,0x91,0x91,0x8E,0x42,0x89,0x89,0x76,0x38,0x24,0x22,0xFF,0x4F,0x89,0x89,0x71,0x7E,0x89,0x89,0x72,0x01,0xF1,0x09,0x07,0x76,0x89,0x89,0x76,0x4E,0x91,0x91,0x7E};unsignedcharledkey[10][8]={{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00}, //0{0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00}, //1{0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00}, //2{0x00,0x00,0x44,0x92,0x92nTimeCount=0;bHold=0;uLightStatusEW=uLightStatusSN=0;nNowStatus=0;nOldStatus=1;nOldTimeCount=0;InitDSP();初始化DSP设置运行速度InitICETEKCTR();化显示/控制模块InitTimer();定时器中断//根据计时器计数切换状态//根据状态设置计数和交通灯状态while(1){if(bHold&&nNowStatus==statusHold){////if(nTimeCount>=nStatusHold){nNowStatus=nSaveStatus;nTimeCount=nSaveTimeCount;bHold=0;}}elseif//初始设置(nTimeCountvnStatusNSGreenEWRed)nNowStatus=statusNSGreenEWRed;elseif(nTimeCountvnStatusNSFIashEWRed)nNowStatus=statusNSFIashEWRed;elseif(nTimeCountvnStatusNSYellowEWRed)nNowStatus=statusNSYellowEWRed;elseif(nTimeCountvnStatusNSRedEWYellow)nNowStatus=statusNSRedEWYellow;elseif(nTimeCountvnStatusNSRedEWGreen)nNowStatus=statusNSRedEWGreen;elseif(nTimeCountvnStatusNSRedEWFIash)nNowStatus=statusNSRedEWFlash;nWork3>0&&nWork4>0)uLightStatusSN=((nWorkI%nWork3)<=nWork4)?(0x49):(0x40);break;casestatusNSRedEWFlash:nWork1=nTimeCount-nStatusNSRedEWGreen;nWork2=nStatusNSRedEWYellow1-nStatusNSRedEWFIash;nWork3=nWork2/3;nWork4=nWork3/2;if(nWork1>=0&&nWork2>0&&nWork3>0&&nWork4>0)uLightStatusEW=((nWorkI%nWork3)<=nWork4)?(0x09):(0x00);break;casestatusNSGreenEWRed:}break;casestatusNSRedEWGreen:nWork1=(nStatusNSRedEWGreen-nStatusNSRedEWYellow)/20;if(nWork1>0)nWork2=20-(nTimeCount-nStatusNSRedEWYellow)/nWork1;if(bHold){if(nWork2>10)nTimeCount=nStatusNSRedEWYellow+nWork1*10;nWork2=10;elseif(nTimeCountvnStatusNSRedEWYellow1)nNowStatus=statusNSRedEWYellow;nWork1=nStatusNSGreenEWRed/20;(nWork1>0)if(nOldTimeCount!=nWork2)}ifelseif(nTimeCountvnStatusNSYellowEWRed1)nNowStatus=statusNSYellowEWRed;if(nNowStatus==nOldStatus){nWork2=20-nTimeCount/nWork1;(bHold)if(nWork2>10)ifnOldTimeCount=nWork2;SetLEDArray(nWork2);statusHold:}
break;casenWorknWork仁nStatusHold/20;ifswitch(nNowStatus){casestatusNSFlashEWRed:nTimeCount=nWork1*10;(nWork1>0)nWork2=10;nWork1=nTimeCount-nStatusNSGreenEWRed;nWork2=20-nTimeCount/nWork1;nWork2=nStatusNSYellowEWRed-nStatusNSFIashEWRed;(nOldTimeCount!=nWork2)nWork3=nWork2/3;nOldTimeCount=nWork2;}ifif(nOldTimeCount!=nWork2)nOldTimeCount=nWork2;nWork4=nWork3/2;if(nWork1>=0&&nWork2>0&&SetLEDArray(nWork2);SetLEDArray(nWork2);uLightStatusEW=0x24; (nScanCode==SCANCODE_9) REGISTERCLKMD=0x1007;//uLightStatusEW=0x24; (nScanCode==SCANCODE_9) REGISTERCLKMD=0x1007;//break;uLightStatusSN=0x49;}else{SetLEDArrbreak;}EndlCETEKCTR();exit(0);if(bHold){ay(0);break;nSaveStatus=nNowStatus;nSaveTimeCount=nTimeCountcasestatusNSYellowEWRed:定时器中断服务程序,进行时钟uLightStatusEW=0x24;uLightStatusSN=0x52;//计数voidinterrupttime(void){nTimeCount++;nTimeCount%=nTotalTime;//voidSetLEDArray(intnNumber)//voidSetLEDArray(intnNumber){inti,ShowNumber;ShowNumber=nNumber/2;if(ShowNumber>9)ShowNumber=0;CTRLCDCMDR=LCDCMDPAGE;//设置操作页=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS;//起始列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for(i=0;i<8;i++)设置发光二极管显示内容nNowStatus=statusHold;nTimeCount=0;if(nSaveStatus==statusNSFIashEWRed||nSaveStatus==statusNSYellowEWRed)nSaveStatus=statusNSRedEWGreen;nSaveTimeCount=nStatusNSRedEWYellow;}elseif(nSaveStatus==statusNSRedEWFIashIInSaveStatus==statusNSRedEWYellow)SetLEDArray(20);break;casestatusNSRedEWYellow:uLightStatusEW=0x12;uLightStatusSN=0x64;SetLEDArray(20);break;casestatusNSRedEWGreen:uLightStatusEW=0x09;uLightStatusSN=0x64;SetLEDArray(20);break;casestatusNSRedEWFlash:uLightStatusEW=0x09;uLightStatusSN=0x64;{CTRLCDLCR=ledkey[ShowNumber][i];nSaveStatus=statusNSGreenEWRed;SetLEDArray(0);break;caseDelay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);将缓存中点阵送发光二极管显初始化将缓存中点阵送发光二极管显初始化DSP设置运行速度=8MHznSaveTimeCount=0;}}nOldStatus=nNowStatus;switch(nNowStatus){casestatusNSGreenEWRed:uLightStatusEW=0x24;uLightStatusSN=0x49;SetLEDArray(20);break;casestatusNSFlashEWRed:statusHold:uLightStatusEW=0x24;uLightStatusSN=0x64;SetLEDArray(20);break;}}CTRLR=uLightStatusEW;CTRLR=uLightStatusSN;//设置交通灯状态RefreshLEDArray();//刷新发光二极管显示nScanCode=port8001;//读键盘扫描码nScanCode&=0x0ff;tKey=CTRCLKEY;if//示voidRefreshLEDArray(){inti;for(i=0;i<8;i++){CTRGR=ledx[i];CTRLA=ledbuf[i];//voidInitDSP(){REGISTERCLKMD=0;//复位PLLk=CTRCLKEY;k=CTRCLKEY;//清除键盘 CTRLCDCMDR=LCDCMDVERADDRE速度设置=16MHz}//设置定时器参数、允许中断voidInitTimer(){unsignedintk;缓冲区TurnOnLCDO;//打开显示LCDCLS();清除显示内存CTRLCDCMDR=LCDCMDSTARTLIN//设置显示起始行CTRLCDCR=0;ss;//Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for(j=0;jv64;j++){E;asm("ssbxINTM");关中断,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年酶(酵)素制剂项目资金需求报告代可行性研究报告
- 2025建筑装饰分包合同(室内外装修及材料供应)
- 2025中国建设银行担保借款合同
- 2025装修施工合同样本
- 2025授权招聘人才合同样本
- 2025工艺品购销合同范本
- 2025商标专利合同范本 技术转让合同协议
- 2025聘请财务与市场顾问合同「样本」
- 2025办公室租赁合同概述
- 2025标准租赁合同书写范本
- icu家属健康宣教
- 技术创新与产品研发投入效果评估与优化报告
- 挪用公款还款协议书范本
- 印刷合同:纸袋印刷合作
- 架空输电线路基础设计规程2023
- TWI-JM(工作改善)课件
- 快学Scala(中文版第2版)
- 肌肉注射评分标准
- 机动车排放定期检验内部审批程序
- DUOYING功效护肤品牌传播规划
- 小学英语-《Caterpillar,caterpillar》教学设计学情分析教材分析课后反思
评论
0/150
提交评论