信号灯的类型

信号灯的类型,第1张

1、二值信号灯

最简单的信号灯形式,信号灯的值只能取0或1,类似于互斥锁。

虽然二值信号灯能够实现互斥锁的功能,但两者的关注内容不同。信号灯强调共享资源,只要共享资源可用,其他进程同样可以修改信号灯的值;互斥锁更强调进程,占用资源的进程使用完资源后,必须由进程本身来解锁。

2、计数信号灯:

信号灯的值可以取任意非负值(当然受内核本身的约束),用来统计资源,其值就代表可用资源的个数。

技术要求

1) 交通信号灯系列产品及规格要求:热镀锌框架式灯杆件符合国家标准。一体化信号灯,不允许采用包箍或支架连接,以保证美观。

2) 道路交通信号灯必须符合GB14887-2003《道路交通信号灯技术要求及测试方法》的要求。具有公安部交通安全产品质量监督检测中心的检测报告,检测报告必须是近2年内送检且在有效期内,无有效期或超过建议检测期的视为无效检测报告。

3) 机动车道信号灯为直径400mm箭头灯,红、黄、绿三个为一组;外壳:纯黑色,铝压铸。

4) 道路交通信号灯生产厂家需出具国标ISO质量管理体系认证资格证书或具有国内国际相近似的标准质量保证体系认证资格证书,以保证供货的质量稳定。

5) LED管必须是四元素,使用寿命不少于50000小时。(LED管必须为国外知名厂家的产品)。

6) 交通信号灯外形应与南京市现使用的信号灯外形基本一致。外观:信号灯外壳、色片及密封圈表面应平滑,无缺料、无开裂、无银丝、无明显变形和毛刺等缺陷。

7) 道路交通信号灯的各项技术指标(如:防护等级、温度、高低温、振动、电气性能等)需经省级以上产品质量监督检测中心检测,并出具相应检测报告。

8) 道路交通信号灯透镜采用高透光率聚碳酸脂制造,使其在10年使用寿命期内不会明显褪色。

9) 道路交通信号灯灯壳结构要求采用铝材压铸制造,开启式;外壳表面喷塑,颜色为黑色,美观轻巧,便于维修与安装。

10) 道路交通信号灯内所有密封应采用硅橡胶材料,使其在10年使用期内在高温和低温环境下不至于出现老化和硬化现象。

11) 道路交通信号灯除电气零件外其余具有不低于10年的抗老化性能、抗腐蚀性能,在10年使用期内金属件不能出现锈斑。

12) 道路交通信号灯的附属金属结构件、标准紧固件应用不锈钢制造,以符合GB14887-2006的相关规定。一体化信号灯,不允许采用包箍或支架连接,以保证美观。

13) 道路交通信号灯出线孔应设置在灯壳的背面,并且能容纳¢20的电缆自由通过,以利于线路安装和连接其他设备,而且电缆进入口应有可靠的绝缘、防水、防尘措施,确保该道路交通信号灯不低于应有的IP55防护等级。

14) 红色、黄色LED管发光强度大于600CD,采用国外著名公司生产的TS芯片封装。绿色LED管发光强度大于600CD,采用进口芯片封装。全屏灯LED管数量:全屏红、黄、绿≥162粒

15) LED使用寿命不少于80000小时,LED信号灯可视距离不低于500米,单灯功率小于15W,工作电压在AC180-260之间,无颜色变化。

16) PCB电路板要采用阻燃材料制作的刚性印刷电路板,并进行镀锡处理,镀层无氧化,焊接面加绿色阻焊层,板厚1.8MM以上。

17) 每个发光单元的引线,应采用符合国家电工标准的导线,线径不小于0.75平方毫米,红、黄、绿色的三种发光单元除回路线外应分别用红、黄、绿色的导线。

18) 信号灯具电源部分不得采用电阻电容降压的方法。

19) 所有元器件都进行老化实验,并分别进行电参数及光参数测试。测试参数作为验收文件的一部分。

方法/步骤

嵌入式 *** 作系统有分时 *** 作系统和实时 *** 作系统,如果 *** 作系统能够使计算机系统及时响应外部事件请求,并能控制所有实时设备和实时任务协调运行,且能在一个规定的时间内完成对事件的处理,怎么这种系统称为实时 *** 作系统。

如果系统必须在极其严格的时间内完成的任务叫做硬件的实时 *** 作系统,如果不是很严格的话就是软件的实时 *** 作系统。

前往官网下载最新版的FreeRTOS系统,然后解压缩到本地。有两个文件夹,FreeRTOS文件夹里面是 *** 作系统内核,FreeRTOS-Plus里面是一些中间件如文件系统,网络协议栈等。

值得一提的是,FreeRTOS的教学用书和API参考手册电子版均已免费提供,建议在现在安装FreeRTOS的同时也一并下载到本地,以供后期学习查阅。

FreeRTOS的主要特点如下:

1. 支持抢占式调度,合作式调度和时间片调度

2. 具有低功耗模式,称为tickless模式

3. FreeRTOS-MPU支持M3/M4/M7内核的MPU(内存保护单元)

4. 典型的内核使用大小在4k~9k

5. 支持消息队列、二值信号量、计数信号量、递归信号量和互斥信号量,可用于任务与任务之间的消息传递和同步,任务与终端间的消息传递和同步

6. 任务数量不限,任务优先级数量不限

7. 高效的软件定时器,不需要损耗额外的CPU时间,除非需要执行定时器任务

8. 任务间直接的消息传递,速度较快

9. FreeRTOS的队列是其它通信和同步机制的基础

移植FreeRTOS之前,原有的工程(比如跑马灯,越简单越好)中不能有SysTick、PendSV和SVC三个系统中断的使用,因为FreeRTOS系统要使用这三个中断。

1. 准备好简单工程的模板

2. 在工程模板中创建FreeRTOS文件夹,并将解压后源码FreeRTOS文件夹中Source目录下的所有内容复制进来

3. 在user目录下需要手动窗件FreeRTOSConfig.h的配置文件,也可以从官方demo中拿来修改后使用,比如从下载的源码目录下的FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK中进行拷贝

4. 将源码文件添加到MDK的工程目录中,其中heap_4.c文件路径Source/portable/MemMang,port.c的路径FreeRTOS/Source/portable/RVDS/ARM_CM4F,这是因为我们使用的M451是CM4F内核的

在工程中添加新的头文件搜索路径:

.\FreeRTOS\include

.\FreeRTOS\portable\RVDS\ARM_CM4F

打开FreeRTOSConfig.h配置文件,根据自己硬件配置进行修改

1. 首先将文件开头的__ICCARM__修改为__CC_ARM,即把编译器从IAR改为RealView

2. 将以下宏配置为0

configUSE_IDLE_HOOK

configUSE_TICK_HOOK

configCHECK_FOR_STACK_OVERFLOW

configUSE_MALLOC_FAILED_HOOK

3. #define configUSE_PREEMPTION 1 将会使能抢占式调度器

4. #define configCPU_CLOCK_HZ ( SystemCoreClock )设置系统主频(M451的系统主频为72MHz)

5. #define configTICK_RATE_HZ ( ( TickType_t ) 1000 )设置系统节拍为1kHz,即1ms

6. #define configMAX_PRIORITIES ( 5 )定义可供用户使用的最大优先级数为5,那么用户可以使用的优先级号是0,1,2,3,4

6. #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 30 * 1024 ) )定义堆大小,FreeRTOS内核,用户动态申请内存,任务栈等都需要这个空间

4. 将工程整体重新编译一次,这样FreeRTOS基本移植结束了

编写测试程序来验证一致的FreeRTOS是否已经可以使用

1. 在main.c中添加一下几个头文件

#include "FreeRTOS.h"

#include "task.h"

#include "queue.h"

#include "croutine.h"

2. 在main函数的开头,禁止全局中断(除了NMI和HardFault),具体方法是:__set_PRIMASK(1)这样做的好处是可以防止执行的中断服务程序中有FreeRTOS的API函数,保证系统正常启动,不受别的中断影响。在port.c中的函数prvStartFirstTask中会重新开启全局中断

3. 创建任务AppTaskCreate()

4. 启动调度,开始执行任务vTaskStartScheduler()

烧写程序,运行,可以从串口看到正确的输出信息

信号量是与signal相关的内容,是进程间通信的一种方式,一个进程可以向另一个进程发送一个信号作为通知,除了signal系统调用外,相关内容还有:

SEE ALSO

kill(1), alarm(2), kill(2), killpg(2), pause(2), sigaction(2), signalfd(2), sigpending(2), sigprocmask(2), sigsuspend(2), bsd_signal(3), raise(3), sigin-

terrupt(3), sigqueue(3), sigsetops(3), sigvec(3), sysv_signal(3), signal(7)

信号量也是进程通信的一种方式,一般用于并发取得资源对应锁或者其他互斥 *** 作,除了semget系统调用外,相关内容还有:

SEE ALSO

semctl(2), semop(2), ftok(3), capabilities(7), sem_overview(7), svipc(7)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8975637.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存