基于ARM和无线传感器网络的公交站台实时显示系统_第1页
基于ARM和无线传感器网络的公交站台实时显示系统_第2页
基于ARM和无线传感器网络的公交站台实时显示系统_第3页
基于ARM和无线传感器网络的公交站台实时显示系统_第4页
基于ARM和无线传感器网络的公交站台实时显示系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 主控制模块设计主控制模块主要是协调ID刷卡模块、GSM无线信息收发模块、显示模块间的协调工作而设置的,它主要是由ARM芯片来完成这个功能。它要能够接收来自ID刷卡模块的ID卡号信息,通过支配GSM无线信息收发模块,将ID卡信息发送到上位机公交车基站,又要接收来自GSM无线信息收发模块传来的上位机公交车基站的显示信息,将这个信息提取出来,转发给显示模块。这样来实现整个系统的协调工作。6.1 主控制芯片的硬件解析本系统选择的是STM32F103RBT6类型的Cortex-m3系列的ARM芯片作为主控芯片。该芯片有64个Pin脚,和5个USART口可供使用。完全能够完足本系统的需求。6.1.

2、1 主芯片的电路图图6-1 控制模块主电路图当有电压加在当前的芯片上的时候,D3LED灯会亮,这样可以表示当前的芯片是有正常工作的电压的。C2为一个最简单的启动复位电路,当芯片刚家电的时候,与C2相连的管脚处于低电平,经过一段时候后,C2处于高电平1。6.1.2 系统时钟电路本系统的主芯片有两个时钟,一个是RTC系统板不能改变的时钟,另一个是可以随时更换的外部时钟晶振。图6-2 系统时钟电路上面是可以随时更换的外部晶振电路。在具有外部晶振的时候,系统是使用外部晶振频率工作的。下面的是RTC晶振电路。这个晶振是不可以更换频率的,当没有外部晶振的时候此晶振电路为芯片提供工作脉冲13。6.1.3 外

3、部引脚扩展电路芯片的引脚要进行扩展出来方便实验的接线和与其它模块进行连接。这里使用的是双列插排来扩展,分成两列双列插排。每个列共有16个,这样有64个插排针与芯片的64个引脚相连来扩展。图6-3 引出管脚图6.2 主控制芯片的程序设计主控芯片的程序,应该在合适的硬件基础上执行,首先应该对整个系统的硬件进行初始化。然后分配各个硬件部分的功能。最后在将这个系统运行的主动权交给用户程序进行执行。由于ARM芯片的初始化比较复杂,这里使用的是STM公司提供的初始化代码进行初始化ARM芯片,编写软件的IDE使用的ARM Keil工具进行编写软件。使用的单片机C语言编写2。因为这种语言与芯片初始化代码一样。

4、编译比较容易。6.2.1 端口初始化函数端口初始化函数主要是设置串口1的输入输出模式,输入输出端口的地址。端口2的输入输出模式,输入输出端口的地址和端口3的输入输出模式,输入输出端口6。void GPIO_Configuration(void)GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO,ENABLE);/*串口1的设

5、置*/*Configure USART1 Tx(PA.09) as alternate function push-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;/选中管脚 9GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;/ 复用推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/最高输出速率50MHzGPIO_Init(GPIOA,&GPIO_InitStructure);/选择A端口/*Configure USART1 Rx(PA.10) as alt

6、ernate function push-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10; /选中管脚10GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;/浮空输入GPIO_Init(GPIOA,&GPIO_InitStructure);/选择A端口/*Configure USART2 Tx(PA.02) as alternate function push-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;/选中管脚 2GPIO_InitStructure

7、.GPIO_Mode=GPIO_Mode_AF_PP;/ 复用推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/最高输出速率50MHzGPIO_Init(GPIOA,&GPIO_InitStructure);/选择A端口/*Configure USART3 Rx(PA.3) as alternate function push-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3; /选中管脚3GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;/浮空输入

8、GPIO_Init(GPIOA,&GPIO_InitStructure);/选择A端口/*Configure USART3 Tx(PB.10) as alternate function push-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;/选中管脚 10GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;/ 复用推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;/最高输出速率50MHzGPIO_Init(GPIOB,&GPIO_InitStructure

9、);/选择B端口/*Configure USART3 Rx(PB.11) as alternate function push-pull*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11; /选中管脚11GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;/浮空输入GPIO_Init(GPIOB,&GPIO_InitStructure);/选择B端口上面的主要代码是初始化三个USART口,USART1口的输出引脚为PA系列口得第9个管脚、USART1的输入引脚为PA系列口得第10个管脚、USART2口得输出引脚为

10、PB系列口得第2个管脚、USART2口的输入引脚为PB系列口的第3个管脚、USART3口的输出引脚为PB系列口的第10个管脚、USART3口的输入引脚为PB系列口的第11个管脚。这三个USART口的最高输出速率为50MHz。6.2.2 事件中断处理函数主控程序是协调ID刷卡模块、无线信息收发模块和显示模块的工作,因此主要是以USART1口、USART2口和USART3口的中断事件来进行处理。程序也是中断模块执行的程序。/* 函数名称:USART1_IRQHandler(void)* 函数功能:串口1中断* 输 入:无* 输 出:无* 返 回:无*/void USART1_IRQHandler(

11、void)if(IsFormated=N)InitTC35Rev();InitTC35Rev();IsFormated=Y;if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)ch=USART_ReceiveData(USART1);/*从串口1接收一个字节*/if(ch=n)/当接收到数卡口数据位结束符Flag=S;InitTC35();SendMessage();else/正常接收刷卡字符CardNumberIndex_Rev+=ch;if(USART_GetITStatus(USART2,USART_IT_RXNE)!=RESET)USAR

12、T2Action();if(USART_GetITStatus(USART3,USART_IT_RXNE)!=RESET)/串口3接收到字符串的事件在开机的时候,对无线信息收发GSM模块进行初始化。初始化成需要接收的模式,当为串口1的事件时,存储当前的接收到得字符,当读取到n换行符的时候,表示刷卡模块发送的信息结束。此时,可以将接收到得数据经过无线信息收发GSM模块发送到上位机公交车基站服务器。当为串口2的事件时,进入串口2事件进行执行。6.2.3 发送卡号短信函数发送卡号短信函数,主要是以TEXT的模式将接收到ID刷卡模块传来的ID卡号,通过无线信息收发GSM模块发送到上位机服务器的执行过程

13、。实现的代码如下:/* 函数名称:SendMessage(void)* 函数功能:发送短信函数函数* 输 入:无* 输 出:无* 返 回:无*/void SendMessage(void)vu8 CMGFSend10=AT+CMGF=1;/定义短信格式为TEXT格式vu8 CSCASend9=AT+CSCA=;/设置当前的短信中心号码vu8 CMGSSend9=AT+CMGS=;/设置要发送的SIM卡号码vu8 i;/*设置手机发送短信格式*/for(i=0;i9;i+)USART_SendData(USART2,CMGFSendi);while(USART_GetITStatus(USART

14、2,USART_IT_TXE) = RESET)USART_SendData(USART2,0x0d);while(USART_GetITStatus(USART2,USART_IT_TXE) = RESET)Delayms(Delay_Time);/*设置短信中心的号码*/for(i=0;i8;i+)USART_SendData(USART2,CSCASendi);while(USART_GetITStatus(USART2,USART_IT_TXE) = RESET)for(i=0;i14;i+)USART_SendData(USART2,PhoneCenteri);while(USART

15、_GetITStatus(USART2,USART_IT_TXE) = RESET)USART_SendData(USART2,0x0d);while(USART_GetITStatus(USART2,USART_IT_TXE) = RESET)Delayms(Delay_Time);/*设置要发送的SIM卡号码*/for(i=0;i8;i+)USART_SendData(USART2,CMGSSendi);while(USART_GetITStatus(USART2,USART_IT_TXE) = RESET)for(i=0;i11;i+)USART_SendData(USART2,Phon

16、eTargeti);while(USART_GetITStatus(USART2,USART_IT_TXE) = RESET)USART_SendData(USART2,0x0d);while(USART_GetITStatus(USART2,USART_IT_TXE) = RESET)Delayms(Delay_Time);/*发送短信的内容*/for(Index_Send=0;Index_SendIndex_Rev;Index_Send+)USART_SendData(USART2,CardNumberIndex_Send);while(USART_GetITStatus(USART2,U

17、SART_IT_TXE) = RESET)Index_Rev=0x0;Delayms(Delay_Time);/*短信结束*/USART_SendData(USART2,0x1A);while(USART_GetITStatus(USART2,USART_IT_TXE) = RESET)Delayms(6*Delay_Time);/*初始化成接收短信模式*/InitTC35Rev();Flag=U;此段代码是实现发送短信的代码,首先发送AT+CMGF=1将无线传输GSM模块格式化成TEXT模式,然后设置本地的发送短信的服务中心号码,发送命令AT+CSCA=+0,此号码为当前芜湖市的移动短信发送

18、服务中心号码、接着设置要发送到的目标手机的SIM卡的号码,发送命令AT+CMGS=目标号码。这样就设置好发送的一切,最后将读取到得ID卡号发送出去。等待一段时间,将无线短信收发模块初始化成接收短信的状态,将这个程序的标志切换成等待接收短信的状态。6.2.4 接收短信处理函数当公交车的基站服务器发送信息到各个站台的时候,主控模块要通过无线传输GSM模块接收到公交车基站服务器的内容。并控制当前的显示模块将要显示的信息显示出来。主要的控制代码如下:/* 函数名称:USART2Action(void)* 函数功能:串口2的接收处理事件* 输 入:无* 输 出:无* 返 回:无*/void USART2

19、Action(void)ch=USART_ReceiveData(USART2);/接收字符if(Flag=N)/当处在接收短信的编号时候if(ch=,)/当为,时表示短信编号的开始Index_Number=0;else if(ch=n)/当为n表示编号结束,这里开始发送请求短信for(Index=0;Index8;Index+)USART_SendData(USART2,ReadNumberCmdIndex);while(USART_GetITStatus(USART2,USART_IT_TXE) = RESET)for(Index=0;IndexIndex_Number;Index+)US

20、ART_SendData(USART2,NumberIndex);while(USART_GetITStatus(USART2,USART_IT_TXE) = RESET)USART_SendData(USART2,0x0d);while(USART_GetITStatus(USART2,USART_IT_TXE) = RESET)Delayms(Delay_Time);Flag=U;else/存储接收到得短信编号NumberIndex_Number+=ch;else if(Flag=M)/当处在接收短信内容的时候if(ch=n)/当为换行符的时候if(ISMessage_Start=N)/第

21、一个换行符ISMessage_Start=F;Index_Message=0;else if(ISMessage_Start=F)/第二个换行符ISMessage_Start=S;else if(ISMessage_Start=S)/第三个换行符ISMessage_Start=T;else/最后的一个换行符或者错误ISMessage_Start=N;Flag=U;/接收信息结束,处理事件发送到串口3for(Index=0;Index=4)/当匹配所有的前缀时Flag=N;/当匹配完所有的字符后,将状态改变为接收编号状态Index_RevHead=0;/将接收短信的字符下标初始化为0else/当

22、不匹配前缀时Index_RevHead=0;/将接收短信的字符下标初始化为0if(ch=MesHeadIndex_MesHead)/当匹配接收字符前缀时Index_MesHead+;if(Index_MesHead=4)/当匹配所有的前缀时Flag=M;/当匹配完所有的字符后,将状态改变为接收短信状态Index_MesHead=0;/将接收短信的字符下标初始化为0else/当不匹配接收字符前缀时Index_MesHead=0;/将接收短信的字符下标初始化为0else/当处在发送短信状态当无线信息传输模块处在等待接收短信的状态的时候,即当前的U状态的时候,当无线传输GSM模块接收到短信到来后,会

23、发送一条消息通知主控芯片有短信到来,并告诉到来的短信的编号。当接收到有短信到来的消息后,程序把状态调整为接收短信的编号的状态,即U状态。并把短信的编号存储起来,最后,给无线传输GSM模块发送读取短信内容的命令。最后将接收到的短信的内容发送到显示模块。6.3 主控模块调试主控模块要实现ID刷卡模块、显示模块和无线传输GSM模块的协调工作。并对事件进行处理。因此这里调试主控模块要验证这些功能是否已经实现。是否有缺陷11。图6-4 主控模块图6.3.1 主控模块启动验证主控模块在启动之初要对无线传输GSM模块进行初始化工作,因此需要发送命令:AT&F、AT+CNMI=2,1和AT+CMGF=1这三条

24、指令来初始化无线传输GSM模块。因此,这里要检测在开机的时候主控模块会不会向USART2口发送这三条初始化指令。图6-5 主控模块开机初始化图上图为在开机的时候PC机监控主控模块的USART2口的状态得到的结果,由结果可以知道,主控模块在开机的时候会初始化向无线传输GSM模块发送初始化指令。这个功能已经能够满足要求。6.3.2 ID刷卡事件功能验证在主控模块正常启动后,遇到刷卡模块输入数据的时候,主控模块要向无线传输GSM模块发送指令,控制无线传输GSM模块将接收到得ID卡信息发送到上位机。这里要发送的命令为:AT&F、AT+CMGF=1、AT+CSCA=短信中心号码、AT+CMGS=目标号码

25、和短信内容,最后对无线传输GSM模块进行初始化。图6-6 ID刷卡模块事件主控模块反应图上图为在主控模块的USART1口有输入的时候PC机监控主控模块的USART2口的状态得到的结果,由结果可以知道,主控模块在接到串口1有数据输入的时候会初始化向无线传输GSM模块发送发送短信指令,并把ID卡号作为短信内容发送到公交车基站服务器中心。这个功能已经能够满足设计要求。6.3.3 短信编号获得验证由于系统是以TEXT模式获得短信内容的,因此这里需要预先获得短信的编号,根据短信的编号才能够获得短信的内容。所以这里要首先验证是否能够获得短信的编号。在接收到主控模块USART2口发送来的短信编号后,主控模块

26、要发送指令获取短信。图6-7 主控模块获得短信编号图上图为模拟无线传输模块通过主控模块的USART2口发送一条新短信通知消息事件的主控模块的反应图。由图可知,主控模块在接收到短信通知的时候,会捕获当前短信的编号,并发送出:AT+CMGR=短信编号的命令来读取当前的短信内容。这个功能已经完成,完成了设计要求。6.3.4 短信内容解析验证主控模块的一个主要功能是要获得公交车基站服务器发送来的短信的内容,并生成命令发送给显示模块。这里系统为了降低开发难度,命令是上位机已经生成好了,主控模块只需要将短信的内容解析出来,发送到USART3口与显示模块相连的接口即可。因此这里需要验证当模块收到来自上位机的

27、短信内容的时候能否正确的解析,将内容发送到USART3口。图6-8 主控模块短信内容解析图上图为PC机模拟无线传输GSM模块,通过主控模块的USART2口发送短信内容的字符串,并监控USART3口的输出,看主控模块能否正确解析短信的内容并正确的发送到USART3口。由上图可知道,主控模块已经正确解析短信,并把短信内容发送到USART3口。第7章 系统集成测试ID刷卡模块、显示模块、无线传输GSM模块和主控模块都已经完成,并对其中重要的模块功能做了简单的功能验证。要想他们能够协调的工作,成为一个统一的系统,系统集成是不可少的一步。要把各个散装的模块组合起来,解决他们之间不协调的问题。能够完成这个

28、系统的功能。7.1 ID刷卡模块与主控模块集成ID刷卡模块是以1200波特率、8位数据位、1位停止位没有硬件流控制的协议发送出ID的卡号。主系统要以相同的协议接收ID卡号。并且形成无限传输GSM模块发送指令发送到USART2口。图7-1 ID数卡模块与主控模块集成图上图中为ID刷卡模块与主控模块集成后的实物图,图中主控芯片已经启动,ID刷卡模块的电是由主控芯片提供,ID刷卡模块与主控芯片的USART1口连接。MAX232芯片是供PC机监控主控芯片的USART2口在刷卡后,有没有相应的命令从USART2口中输出。因此MAX232电平转换器已经于主控模块的USART2口相连。如果ID刷卡模块与主控

29、模块的集成没有问题话,PC机监控的主控芯片的USART2口在刷卡的后,会形成一串控制命令从USART2口发送出来。图7-2 ID刷卡模块与主控模块集成监控图由上图可知,ID刷卡模块与主控模块集成后,ID刷卡模块刷卡后,PC机串口监控器中能够收到主控模块发送来的短信发送命令。ID刷卡模块与主控模块集成是可以完成所需要的功能的。7.2 无线传输GSM模块与主控制模块集成无线传输GSM模块与主控模块集成是在上一步的基础上集成的,集成后的系统应该包含ID刷卡模块、主控模块和GSM无线传输模块。在刷卡后应该可以发送出去短信。短信内容为卡号。图7-3 无线传输GSM模块与主控模块集成实物图上图中的各个模块

30、都已经启动,它是在7.1的集成基础上集成了无线传输GSM模块后的实物图。无线传输GSM模块是单独的电源,三个模块是共地的。如果无线传输GSM模块集成后系统应该具有在ID刷卡模块后,将驱动主控模块的ID刷卡事件,此事件将驱动无线传输GSM模块发送一条内容为ID卡号的短信。因此这里需要验证目标手机是否收到ID卡号。图7-4 目标手机收到短信图上图为目标手机收到系统发送来的短信,短信内容为:$0D002CACEB。这是此ID卡的卡号,由此可以确认目前有ID刷卡模块、主控模块和无线传输GSM模块集成的系统能够满足当前的功能。7.3 显示模块与主控模块集成显示模块与主控模块集成是在以上的基础上进行的集成

31、。集成后的系统应该包含ID刷卡模块、主控模块、无线传输GSM模块和显示模块。集成后的系统如果正常则系统要能够接收来自公交车基站服务器上位机的显示命令,解析,并显示出来。图7-5 显示命令发送图上图中显示手机模拟公交车基站服务器给当前集成系统发送显示命令。发送的命令为:P007S10E。根据2.3.1小节中的命令解析方式可分析,P007表示为七路车显示控制命令,当前系统演示的正式七路车路线的显示,因此,如果模块集成正常,后面的显示命令可以得到解析并显示出来。据解析指令的方式解析,如果系统正常解析并显示此指令的内容后,应该有一排LED显示灯是间隔亮。下图为集成了ID刷卡模块、主控模块、无线传输GS

32、M模块和显示模块后的系统,系统在接收到图7-5的显示命令后,得到解析后的显示图。图7-6 显示命令实物图上图为接收到显示命令后的实物图,由上图可以看出系统正常解析了显示命令:P007S10E。显示为一排灯的间隔亮。由此可以初步认为系统是可以正常工作的。7.4 系统测试本系统是基于ARM和无线传感器的公交车站台实时显示系统。系统要实现的功能首先是公交车进站信息的采集。系统采用ID卡刷卡获取公交车的唯一编号,需要将此编号发送到公交车基站服务器,因此系统应该具有读取到ID卡号,并且能够正确发送到公交车基站服务器的功能。然后,系统要具有接收基站服务器发送来的显示命令并且解析的功能。这里又要包含系统要接

33、收到公交车基站服务器发来的显示命令、系统要能区分混淆的显示指令,对不是本路车的显示命令不解释,不显示。对于本路车的显示命令,呀精确到各种各样的解析前提下遇到各种各样的显示命令都能够解析。最后,系统要具有将解析的结果通过控制系统中的LED灯来显示出来。实现整个系统的功能。图7-7 系统启动图系统在正常启动后,所有的LED灯都应该是灭的。主控毛会灯亮表示主控模块正常运行。显示模块单片机灯亮,表示单片机正常运行,无线传输GSM模块灯亮,表示此模块也正常运行。7.4.1 读卡功能测试系统要具有读取ID卡号功能,并把卡号发送到公交车基站服务器的功能。这里读卡使用的是ID读卡模块,发送使用的是无线传输GS

34、M模块实现的。测试使用了两个卡号不同的ID卡,分别刷卡,看是否能够都发送到公交车基站服务器。并分析卡号是否相同。1. 这里使用的卡号是D5。图7-8 ID卡1上传图片上图为ID卡1刷卡后系统上传到模拟公交车基站服务器的短信内容。卡号为:D5。系统能够正常上传卡1的卡号到基站。2. 这里使用的是另外一张ID卡,卡号为:0D002CACE8,要验证系统是不是每次都上传一样的ID卡号。或者有遗留卡号在系统中,导致错误。图7-9 ID卡2上传图片上图为ID卡2刷卡后系统上传到模拟公交车基站服务器的短信内容。卡号为:0D002CACE8。系统能够正常上传卡2的卡号到基站。这表明系统不会上传上一次的刷卡卡

35、号到服务器基站。7.4.2 公交车基站服务器命令解析测试系统要具有解析公交车基站服务器发送来的命令,并将该命令的内容解析显示出来。这里主要测试系统能否区分混淆的相似的显示命令,能否精确的控制到每一位显示。能否正确的解析上位机的命令。这是在系统正常启动后,模拟公交车基站服务器给系统发送的第一条显示命令,命令的内容是:P007S11E。图7-10 测试命令1发送图系统在接收到这条显示命令后,在能够正确解析和显示后,应该出现一排LED灯全部都是亮的。图7-11 测试命令1效果图由上图可以看到,在接到命令后,系统的LED灯有一排已经全部点亮。表明系统可以相应和解析指令。并且能够驱动LED显示出来。系统

36、也应该具有区分混淆指令的能力,当不是此路公交车的显示命令的时候,系统在接收到命令后,不应该做出任何反应。图7-12 测试命令2发送图上图中的发送命令为:P002S00E。表示二路公交车的显示命令,当前系统模拟的为七路公交车显示系统。因此系统在接到这条指令后不应该做出任何反应。事实上系统在接到这条指令后没有任何反应。结论与展望三个月以来,一直在做这个系统,让我了解到ARM的发展历史,最早的ARM芯片非常简单。后来有了ARM7,ARM8,ARM9一直到现在的ARM11,每一代都有许多中产品。在ARM芯片家族中最经典的是ARM7,它是销量最大的单片机。盛行的时间也是最长的ARM,直到现在也有很多人在

37、使用ARM7产品。ARM的设计和生产的模式和其他普通的芯片不一样,ARM公司只负责设计新的ARM架构和一些ARM芯片的指令及规则。而生产产权是出售给各个知名的单片机芯片生产厂商生产。这样的设计和生产的模式使得ARM公司更能集中精力去研究更新更快的单片机内核和架构,也正是这个原因使得ARM公司一直都发展的很快。通过做这个系统我更深入的了解到系统使用的Cortex-m3芯片的架构是ARM公司的第一款低端的,功能像51单片机一样的ARM芯片。它有比51更优越的架构,更省电的运行模式,更强的处理能力。在做系统之前不了解LED发光二极管到底需要多大的电压能够发光,多大的电压会将它烧坏,它正常发光后通过的

38、电流一般是多大,51到底能够驱动多少个这样的LED发光二极管,三极管的开关作用到底是怎么使用的等,这些问题在做系统的过程中不断的探索和实验,让我清晰的知道这些问题的答案。当然,在毕业设计做的过程中我得到的不仅仅是这些,也锻炼了我思考问题的能力和在有压力的环境下还能有条不紊的做事情的心态调整等。本毕业设计的是围绕着当今繁忙的都市生活的一个课题,它的实际意义是能够为出行的人在等公交的时候提供方便和更多的供他们选择适合自己乘坐的交通工具的可能。公交车站台的实时显示系统以前已经有人做过,并且在一些城市也已经运行。那些方案往往很多是基于GPRS的全球定位系统来做的。系统的弊端是投资比较大、报站有误、系统

39、的分析复杂、不容易实现等缺点。本系统在很大程度上克服了这些缺点,系统果断的摒弃了使用比较麻烦、分析比较困难、准确率比较低的GPRS全球定位系统,而改用GSM无线传感器来准确、实时、简单定位。系统的一个新亮点就是显示比较简单、节省能源。显示中也结合了当前的公交车站台的实际情况设计的显示方式。在实际安装使用中,只需要在现在目前使用的公交车站台的基础上,在每个站台字的下面加上一个发光二极管即可,当发光二极管发光的时候表示站台有此路车。当发光二极管不发光的时候表示此站台没有此路车。这样节约了大量的在建投资资金。由于这只是一个实验室系统,它还存在着很多的不足的地方,比如,在显示方面,它支持的发光二极管的

40、数量有限制在二十四个以内。这样就很难能够满足实际的需要,后期真正的投入使用,把显示方式由现在静态的显示方式更换为动态的显示方式,这样就能够驱动更多的发光二极管,可能能带一百多个,这样有远远能够满足实际使用的需要。在公交车路数的选择上系统也存在着弊端,当前的系统是不能够改变公交车路数的,而一个城市可能有几百路公交,不能在显示模块中做几百个程序,这样很不现实,因此,在改善中显示模块上加上拨码开关,这样工人在安装的时候可以拨动拨码开关来选择是哪路公交的显示模块。系统的另一个弊端就是ID刷卡模块的距离,当前的ID刷卡模块的距离是近距离卡,实际使用中,公交车驾驶员不可能下车到系统旁边刷卡后使用。因此实际

41、应用中要使用远距离甚至超远距离刷卡方式。这样只要公交车进站就可以读取到卡号。公交车站台实时显示系统的意义在于,它能够为现在在快节奏都市忙碌生活的人们提供及时可靠的信息。节约他们因为在公交车站台等车而浪费宝贵的时间,这样不仅创造了社会价值。更节约了每个人的时间,提高了城市人的生活效率。而一个可靠快速的公交车站台实时显示系统更为这个功能添加色彩。因此基于ARM和无线传感器的公交车站台实时显示系统的进一步研究和投入实际使用是非常的有价值的。致 谢首先感谢我的父母,他们不仅给了我一个来到这个灿烂世界的机会,还给了我一个来到安徽工程大学读书的机会。也感谢从我开始教汉字和1+1=2的老师到现在我学习计算机

42、知识的老师们,是他们一直教育我,帮助我,我才有这样的机会进入这个大学里学习知识,我才有能力去胜任一份工作去养活自己。非常感谢谢永宁老师、谢永宁老师在我大学的最后学习阶段毕业设计阶段给我的指导,从最初的定题,到系统的分析,到资料收集,系统的制作,到一个个难题的解决,到写作、修改,到论文定稿,他给了我耐心的指导和无私的帮助。为了指导我的毕业论文,他在工作之余的时间要到实验室去看我,帮我解决问题。他要求我像他的孩子一样严格,在他的要求下我学习和实验都做的比较快,也部分克服了以前的懒惰性格。他的这种无私奉献的敬业精神令人钦佩,在此我向她们表示我诚挚的谢意。同时,感谢所有任课老师和所有同学在这四年来给自

43、己的指导和帮助, 是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是由于他 们,我才能在各方面取得显著的进步,在此向他们表示我由衷的谢意,并祝所有 的老师培养出越来越多的优秀人才,桃李满天下!作者:2011年6月14日参考文献1 廖日坤. ARM嵌入式应用开发技术白金手册M.北京:中国电力出版社,2005.2 Brian W.Kernighan and Dennis M.Ritchie.The C Programming Language(2nd Edition)M.美国:Prentice Hall,1988.3 W. Richard Stevens, Stephen A. Ra

44、go. Advanced Programming in the UNIX Environment 2nd EditionM. 美国:Addison Wesley,2005.4 张毅刚.单片机原理及应用M.北京.:高等教育出版社,2003.5 胡乾斌,李广斌,李玲,甘锡英.单片微型计算机原理与应用M.北京.:华中科技大学出版社,2001.6 姚文祥,宋岩.ARM Cortex-M3权威指南M.北京.:北京航空航天大学出版社,20077 Joseph Yiu.The definitive guide to the ARM Cortex-m3 Second editionM.美国:Newnes.,2

45、002.8 SIEMENS Co.Ltd.AT Command Set Siemens Cellular EnginesJ.GSM9 郭天祥.新概念51单片机C语言教程M.北京.:电子工业出版社,2009.10 杨欣,王玉凤,刘湘黔.51单片机应用从零开始M.北京.:清华大学出版社,2008.11 薛圆圆.USB应用开发技术大全M.北京:人民邮电出版社,2007.12 韩广兴.电子元器件与实用电路基础M.北京:电子工业出版社,2005.13 阎石.数字电子技术基础M.北京:高等教育出版社,2005.14 邱关源.电路M.北京:高等教育出版社,2007.15 安徽工程大学.微型计算机及接口技术实

46、验指导书J.安徽工程大学附 录附录A:引用的外文文献及其译文外文文献:File I/O3.3 open FunctionA file is opened or created by calling the open function.#include int open(const char *pathname, int oflag, . /* mode_t mode */ );Returns: file descriptor if OK, 1 on errorWe show the third argument as ., which is the ISO C way to specify t

47、hat the number and types of the remaining arguments may vary. For this function, the third argument is used only when a new file is being created, as we describe later. We show this argument as a comment in the prototype. The pathname is the name of the file to open or create. This function has a mu

48、ltitude of options, which are specified by the oflag argument. This argument is formed by ORing together one or more of the following constants from the header:O_RDONLYOpen for reading only.O_WRONLYOpen for writing only.O_RDWR Open for reading and writing. Most implementations define O_RDONLY as 0,

49、O_WRONLY as 1, and O_RDWR as 2, for compatibility with older programs. One and only one of these three constants must be specified. The following constants are optional:O_APPENDAppend to the end of file on each write. We describe this option in detail in Section 3.11.O_CREATCreate the file if it doe

50、snt exist. This option requires a third argument to the open function, the mode, which specifies the access permission bits of the new file. (When we describe a files access permission bits in Section 4.5, well see how to specify the mode and how it can be modified by the umask value of a process.)O

51、_EXCLGenerate an error if O_CREAT is also specified and the file already exists. This test for whether the file already exists and the creation of the file if it doesnt exist is an atomic operation. We describe atomic operations in more detail in Section 3.11.O_TRUNCIf the file exists and if it is s

52、uccessfully opened for either write-only or readwrite, truncate its length to 0.O_NOCTTYIf the pathname refers to a terminal device, do not allocate the device as the controlling terminal for this process. We talk about controlling terminals in Section 9.6.O_NONBLOCKIf the pathname refers to a FIFO, a block special file, or a character special file, this option sets the nonb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论