레이블이 Automotive인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Automotive인 게시물을 표시합니다. 모든 게시물 표시

2018년 5월 21일 월요일

pclk

pclk: Pixel CLocK

Camera interface

The CAMIF, also the Camera Interface block is the hardware block that interfaces with different image sensor interfaces and provides a standard output that can be used for subsequent image processing.

A typical Camera Interface would support at least a parallel interface although these days many camera interfaces are beginning to support the MIPI CSI interface.

The camera interface's parallel interface consists of the following lines :-

8 to 12 bits parallel data line

These are parallel data lines that carry pixel data. The data transmitted on these lines change with every Pixel Clock (PCLK).
Horizontal Sync (HSYNC)

This is a special signal that goes from the camera sensor or ISP to the camera interface. An HSYNC indicates that one line of the frame is transmitted.
Vertical Sync (VSYNC)

This signal is transmitted after the entire frame is transferred. This signal is often a way to indicate that one entire frame is transmitted.
Pixel Clock (PCLK)

This is the pixel clock and it would change on every pixel.
NOTE: The above lines are all treated as input lines to the Camera Interface hardware.

Example
Let us suppose that a sensor is transmitting a VGA frame 640x480. The video frame is of a format RGB888. Let's assume that we have a camera sensor transmitting 8 bits per pixel clock (PCLK). This means to transfer one pixel of data, 3 PCLKs would be required. The HSYNC would be fired by the sensor after every 640 x 3, 1920 PCLKs. A VSYNC would be fired by the sensor after the entire frame is transmitted i.e. after 1920x480, 921600 PCLKs.
센서가 VGA 프레임 640x480을 전송한다고 가정 해 봅시다. 비디오 프레임은 RGB888 형식입니다. 우리가 픽셀 클록 (PCLK) 당 8 비트를 전송하는 카메라 센서를 가지고 있다고 가정 해 봅시다. 이것은 한 픽셀의 데이터를 전송하는 것을 의미하며, 3 개의 PCLK가 필요합니다. HSYNC는 640 x 3, 1920 PCLK마다 센서에 의해 발사됩니다. VSYNC는 전체 프레임이 전송 된 후 즉 1920x480, 921600 PCLK 이후에 센서에 의해 시작됩니다.

The camera interface's hardware block (that could be a part of any SOC) would constantly monitor the above lines to see if the sensor has transmitted anything. A typical camera interface would come with some internal buffering and would also have an associated DMA to transfer the image to the destination memory. The buffer would capture the incoming pixels to temporarily buffer them, and using the DMA the pixels would be transferred (probably line by line) through multiple burst DMA transfers to a destination address in the memory (pre programmed by the camera interface driver programmer). The camera interface's programmer interface might also give a facility of issuing hardware interrupts upon the receipt of the HSYNC, VSYNC signals to the host micro-controller. This could serve as a useful trigger for DMA reprogramming if required.
카메라 인터페이스의 하드웨어 블록 (SOC의 일부일 수 있음)은 센서가 아무 것도 전송하지 않았는지 확인하기 위해 위의 라인을 지속적으로 모니터링합니다. 전형적인 카메라 인터페이스는 약간의 내부 버퍼링을 가지며 이미지를 대상 메모리로 전송하는 관련 DMA를 갖습니다. 버퍼는 들어오는 픽셀을 캡처하여 일시적으로 버퍼에 저장하고, DMA를 사용하면 메모리의 대상 주소 (카메라 인터페이스 드라이버 프로그래머가 사전 프로그래밍 한)로 다중 버스트 DMA 전송을 통해 픽셀이 전송됩니다. 카메라 인터페이스의 프로그래머 인터페이스는 호스트 마이크로 컨트롤러에 대한 HSYNC, VSYNC 신호 수신시 하드웨어 인터럽트를 발행하는 기능을 제공 할 수도 있습니다. 필요할 경우 DMA 재 프로그래밍을위한 유용한 트리거 역할을 할 수 있습니다.




2018년 2월 23일 금요일

ISO26262

참조: Link

ISO 26262의 목적은 모든 자동차 E/E(전기 및 전자) 시스템의 안전관련 규약들을 표준화하는 것

이 공인된 ISO 26262의 초안을 변호사들이 최신 인증 기술로 인정하여 이용할 수 있

독일 법에 따르면 자동차의 오작동으로 인한 인적 피해에 대해서는 자동차 제조업체가 법적 책임이 따르게 되지만, 이러한 경우, 최신 기술을 통해 오작동을 발견되지 않을 경우에는 법적 책임이 없어지게 됩니다.

ISO 26262 표준은 개발부터 폐기까지 전반적인 제품 개발 프로세스에 관한 규제 사항과 권고사항을 제공합니다. 이 표준은 시스템 또는 컴포넌트에 수용 가능한 위험 수준을 할당하는 방법과 전체 테스트 프로세스의 문서화를 상세히 기술합니다. 일반적으로 ISO 26262는:

자동차 안전 수명관리(관리, 개발, 생산, 운영, 서비스, 폐기)를 제공하고 라이프사이클 주기의 각 단계에 따른 필요한 활동의 조정을 지원합니다.
자동차의 위험 등급(Automotive Safety Integrity Level, ASIL)을 결정하기 위해 자동차에 특화된 위험 기반 접근 방식을 제공합니다.
ASIL을 사용하여 수용 가능한 추가적인 위험을 수용하기 위한 컴포넌트의 필요한 안전 요구사항을 제공합니다.
충분하고 수용가능한 안전 수준을 보장하기 위한 검증 및 확인 방식에 요구사항을 제공합니다.

Automotive Safety Integrity Level (ASIL)
위험 노출 확률, 운전자가 수행 가능한 제어력, 심각한 문제가 발생할 경우 일어날 수 있는 결과의 심각성들이 조합된 내용을 기초로 위험성 평가가 ASIL로 이어집니다. ASIL은 시스템에서 사용되는 기술들을 다루지는 않습니다. ASIL은 운전자와 도로 위의 다른 운전자들에게 미치는 위험성에만 초점을 맞추고 있습니다.

각 안전 요구사항은 ASIL의 A, B, C 또는 D등급으로 나뉘는데, 여기서 D등급이 안전이 중요한 프로세스와 엄격한 테스트 규제를 가지는 등급입니다. ISO 26262 표준은 컴포넌트의 ASIL의 구성요소를 기반으로 하여 최소한의 테스트 요구사항을 상세히 파악합니다. 따라서 테스트에 반드시 사용되어야 하는 방식을 판단하는 데 도움이 됩니다. ASIL이 결정되고 나면, 시스템에 대한 안전 목표가 형성됩니다. 이로써 안전을 보장하기 위해 필요한 시스템 동작이 정의됩니다.

예를 들어, 윈드실드 와이퍼 시스템을 생각해보겠습니다. 와이퍼 기능이 오작동할 경우 운전자의 시야에 끼칠 영향을 안전 분석이 결정하게 될 것입니다. ASIL은 특정 레벨의 제품 무결성에 도달에 적합한 방식을 결정하기 위한 가이드를 제공합니다. 이 가이드는 현재 안전 방식을 보완하기 위해 제작되었습니다. 현재 자동차들은 이미 높은 안전성을 가지도록 제조되고 있지만, ISO 26262는 업계들 간의 특정한 방식들을 표준화하기 위해 제정되었습니다.

7. 테스트 툴 조건
ISO 26262 개발 과정 중 테스트는 중요한 컴포넌트입니다. 안전이 중요한 시스템은 반드시 테스트 시나리오에 적절히 응답하고 여러 인적 및 환경 입력에 노출되었을 때 특정 안전 한계치를 벗어나면 안됩니다. 고품질의 테스트 시스템을 사용하면 제품의 성능을 개선하고 품질과 안정성은 높이며 문제 발생율을 낮출 수 있습니다. 현장이 아닌 생산 중에 에러를 발견하면 실패 비용이 10배까지 줄어들고 생산 단계가 아닌 디자인 단계에서 에러가 발견되면 또 10배까지 비용을 절감할 수 있다고 평가되었습니다. 테스트는 이러한 오류들을 발견하고 데이터를 발견하여 디자인 또는 프로세스를 개선하기 때문에 회사와 조직에 귀중한 가치를 제공합니다. 새로운 기술의 도입과 최적의 방법론으로 프로세스에 혁신을 주도하면 상당한 효율성을 얻고 비용은 줄일 수 있습니다. 툴을 간과하고 시스템의 디자인만 생각하기 쉬운데, 툴은 최종 사용자의 안전에 있어 매우 중요합니다.

참조: Link
3. Automotive Safety Intergrity Level(ASIL)
- one of four levels to specify the item's or element's necessary requirments of ISO-26262 and safety measures to apply for avoiding an unreasonable residual risk, with D representing the most stringent and A the least stringent level
- ASIL은 item 혹은 element에 요구되는 불합리한 잔류 위험을 피하기 위한 안전대책에 대한 등급으로서  ISO 26262에서는 4개의 등급이 있으며, A가 가장 낮고, D가 가장 높음
- Item 정의로부터 차량 수준의 위험원 분석 및 리스크 평가( H&R) 를 통해 Item의 작동 불량으로 인한 피해의 심각성(Severity), 발생 가능성(Exposure), 통제 가능성 ( Controllability)에 의거 등급을 결정하며, 이를 ASIL이라고 함
- ASIL 등급 결정 방법은 Part 3에 명시되어 있음

SIL -> ASIL
정량적 평가 기준은 하드웨어만 있음
소프트웨어는 정량적 평가가 없음

참조: Link
ASIL 수준이 갖는 의미
- ISO 26262는 ASIL 수준에 따라 고장 상황에서도 설계자 및 시스템 엔지니어가 실현해야 하는 안전 요구사항을 정의하며, 시스템이 사용자(운전자, 승객, 도로 교통 이용자 등)의 안전에 대해 충분한 여유를 제공해야 한다.
- ASIL 수준은 특정 모듈에 결부되는 것이 아니라 특정 기능에 결부된다.
- ASIL 수준은 감지 가능성 향상 및 대응 조치 실행과 같이 동일한 기능을 수행하는 두 가지 개별적인 요소의 분리를 통해 낮출 수 있다.
- 구현된 방식 그대로 안전 핵심 기능의 추적 가능성을 입증할 수 있으려면 설계 사이클의 각 단계에서 적절한 증거를 유지해야 한다.

2017년 12월 26일 화요일

Ignition on, off 이해하기

참조: Link

ignition: 점화장치

차량에서 점화장치의 상태를 나누는데
키를 꽂는 곳을 보면 아래와 같이 나누어져 있다.
LOCK
ACC
ON
START
여기에 키를 꽂지 않은 상태까지 총 5가지가 된다.

LOCK 은 키만 꽂은 상태
ACC, ON, START 는 키를 여기까지 돌린 상태이다.
ACC 는 라디오, 진단장치에 전원이 들어오고
ON 은 모든 장치에 전원이 들어오고
START 는 시동을 건다.

요즘 나오는 버튼식은 어떻게 되는지?
아마 키가 감지되는 것, 차 안에 키를 가지고 오는 것, 버튼을 누르는 것 등으로 구분하지 않을까



ECUs

AVM(Around View Monitor)

BCM(Body Control Management)

CDU(Center Display Unit)

EPS(Electronic Power Steering)

ESC(Electronic Stability System)

SCU(Smart Control Unit)

VCU(Vehicle Control Unit) Explanation Link

PEPS(Passive Entry and Passive Start) Explanation Link

ICM(Instrument Cluster Module)

SAS(Steering Angle Sensor)


2017년 10월 22일 일요일

Collision avoidance system

참조: Link

A collision avoidance system is an automobile safety system designed to reduce the severity of a collision. It is also known as a precrash system, forward collision warning system, or collision mitigating system. It uses radar (all-weather) and sometimes laser (LIDAR) and camera (employing image recognition) to detect an imminent crash. GPS sensors can detect fixed dangers such as approaching stop signs through a location database.[1][2][3]
충돌 회피 시스템은 충돌의 심각성을 줄 이도록 설계된 자동차 안전 시스템입니다. 또한 프리 래시 (precrash) 시스템, 순방향 충돌 경고 시스템 또는 충돌 완화 시스템으로도 알려져 있습니다. 레이더 (전천후)와 때로는 레이저 (LIDAR) 및 카메라 (이미지 인식 사용)를 사용하여 임박한 충돌을 감지합니다. GPS 센서는 위치 데이터베이스를 통해 접근하는 정지 신호와 같은 고정 된 위험을 감지 할 수 있습니다.
Once the detection is done, these systems either provide a warning to the driver when there is an imminent collision or take action autonomously without any driver input (by braking or steering or both). Collision avoidance by braking is appropriate at low vehicle speeds (e.g. below 50 km/h), while collision avoidance by steering is appropriate at higher vehicle speeds.[4] Cars with collision avoidance may also be equipped with adaptive cruise control, and use the same forward-looking sensors.
감지가 완료되면,이 시스템은 임박한 충돌이있을 때 운전자에게 경고를 제공하거나 운전자 입력없이 (자제 또는 조향 또는 양쪽 모두에 의해) 자율적으로 행동을 취합니다. 낮은 차량 속도 (예 : 50 km / h 미만)에서는 제동에 의한 충돌 회피가 적절하지만 높은 차량 속도에서는 조향에 의한 충돌 회피가 적절합니다. 충돌 회피가있는 자동차는 적응 형 순항 제어 장치가 장착되어있을 수 있으며 동일한 전방 탐지 센서를 사용할 수 있습니다.
In March 2016, the National Highway Traffic Safety Administration (NHTSA) and the Insurance Institute for Highway Safety announced the manufacturers of 99% of U.S. automobiles had agreed to include automatic emergency braking systems as a standard feature on virtually all new cars sold in the U.S. by 2022.[5] In Europe there was a related agreement about advanced emergency braking system (AEBS) or autonomous emergency braking (AEB) in 2012.[6] United Nations Economic Commission for Europe (UNECE) has announced that this kind of system will become mandatory for new heavy vehicles starting in 2015.[7] NHTSA projected that the ensuing acceleration of the rollout of automatic emergency braking would prevent an estimated 28,000 collisions and 12,000 injuries.[5]
2016 년 3 월, 고속도로 교통 안전국 (NHTSA)과 고속도로 안전 보험 연구소는 미국 자동차의 99 % 제조업체가 미국에서 판매되는 거의 모든 신차에 자동 비상 제동 시스템을 표준 기능으로 포함하기로 합의했다고 발표했습니다. 유럽에서는 2012 년에 AEBS (Advanced emergency braking system) 또는 AEB (autonomous emergency braking)에 관한 관련 합의가있었습니다. 유엔 유럽 경제위원회 (UNECE)는 이러한 종류의 시스템이 새로운 무거운 NHTSA는 자동 비상 제동의 롤아웃 가속화로 약 28,000 건의 충돌과 12,000 건의 부상을 예방할 수있을 것으로 전망했습니다.

History
Early warning systems have been attempted as early as the late 1950s. Cadillac for instance, developed a prototype vehicle named the Cadillac Cyclone which used the new technology of radar to detect objects in the front of the car with the radar sensors mounted inside the "nose cones". It was deemed too costly and the model was subsequently dropped. Features such as this were typically mentioned as marketing tools, and likely never actually worked.
조기 경보 시스템은 1950 년대 후반에 시도되었습니다. 예를 들어 캐딜락은 레이더 센서가 장착 된 차량 정면의 물체를 탐지하기 위해 레이더의 신기술을 사용하는 Cadillac Cyclone이라는 프로토 타입 차량을 개발했습니다. 너무 비싸다고 받아들여졌고 모델 생산은 중단되었습니다. 이와 같은 기능은 일반적으로 마케팅 도구로 언급되었으며 실제로는 실제로 작동하지 않았습니다.
The first modern demonstration of a truly functional forward collision avoidance was performed in 1995 by a team of scientists and engineers at Hughes Research Laboratories in Malibu, California. The project was funded by Delco Electronics, and was led by HRL physicist Ross D. Olney. The technology was labeled for marketing purposes as "Forewarn". The system was radar based - a technology that was readily available at Hughes Electronics, but not commercially elsewhere. A small custom fabricated radar-head was developed specifically for this automotive application at 77 GHz. The forward radar-head, plus the signal processing unit and visual-audio-tactile feedbacks were first integrated into a Lexus LS400, and shortly thereafter into a Cadillac STS.[8]
진정한 기능의 순방향 충돌 회피에 대한 최초의 현대적인 시연은 1995 년 캘리포니아 주 말리부 (Malibu)에있는 Hughes Research Laboratories의 과학자 및 엔지니어 팀이 수행했습니다. 이 프로젝트는 Delco Electronics가 자금을 지원했으며 HRL의 물리학 자 Ross D. Olney가 이끌었습니다. 이 기술은 마케팅 목적으로 "Forewarn"으로 분류되었습니다. 이 시스템은 Hughes Electronics에서 쉽게 사용할 수 있었지만 다른 곳에서는 상업적으로 사용할 수 없었던 레이더 기반 기술이었습니다. 소형 맞춤 레이더 헤드가 77 GHz의 자동차 애플리케이션 용으로 특별히 개발되었습니다. 전방 레이더 헤드와 신호 처리 장치 및 시각적 오디오 촉각 피드백은 Lexus LS400에 처음 통합되었으며 이후 곧 Cadillac STS에 통합되었습니다.
In the early-2000s, the U.S. National Highway Traffic Safety Administration (NHTSA) researched whether to make frontal collision warning systems and lane departure warning systems mandatory.[9] In 2011, the European Commission investigated the stimulation of "collision mitigation by braking" systems.[10] Mandatory fitting (extra cost option) of Advanced Emergency Braking Systems in commercial vehicles would be implemented on 1 November, 2013 for new vehicle types and on 1 November, 2015 for all new vehicles in the European Union.[11] According to the impact assessment,[12] this might ultimately prevent around 5,000 fatalities and 50,000 serious injuries per year across the EU.
2000 년대 초반 미국 고속도로 교통 안전국 (NHTSA)은 정면 충돌 경고 시스템과 차선 이탈 경고 시스템을 필수로 설정할지 여부를 조사했습니다. 2011 년에 유럽 집행위원회는 "제동에 의한 충돌 완화"시스템에 대한 자극을 조사했습니다. 상업용 차량의 고급 비상 제동 시스템의 필수 피팅 (추가 비용 옵션)은 2013 년 11 월 1 일에 신형 차량 유형에 대해, 그리고 2015 년 11 월 1 일에 모든 유럽 연합 차량에 적용됩니다. 영향 평가에 따르면, 이는 궁극적으로 EU 전역에서 연간 약 5,000 건의 사망과 5 만 건의 중상을 예방할 수 있다고 합니다.

Benefits
A 2012 study[13] by the Insurance Institute for Highway Safety examined how particular features of crash-avoidance systems affected the number of claims under various forms of insurance coverage. The findings indicate that two crash-avoidance features provide the biggest benefits: (a) autonomous braking that would brake on its own, if the driver does not, to avoid a forward collision, and (b) adaptive headlights that would shift the headlights in the direction the driver steers. They found lane departure systems to be not helpful, and perhaps harmful, at the circa 2012 stage of development. A 2015 Insurance Institute for Highway Safety study found forward collision warning and automatic braking systems reduced rear collisions.[14]
고속도로 안전 보험 연구소의 2012 년 연구에 따르면 충돌 방지 시스템의 특정 기능이 다양한 보험 형태에서 청구 건수에 어떤 영향을 주 었는지 조사했습니다. 연구 결과에 따르면 두 가지 충돌 회피 기능이 다음과 같은 이점을 제공합니다. (a) 운전자가 앞으로 충돌을 피하기 위해 스스로를 제동하는 자율 제동, (b) 전조등을 전진시키는 적응 형 전조등 운전자가 조종하는 방향. 그들은 차선 이탈 시스템이 2012 년 경 개발 단계에서 도움이되지 않으며 아마도 해로운 것으로 나타났습니다. 2015 년 고속도로 안전 보험 연구소에서 충돌 경고가 나오고 자동 제동 장치가 후방 충돌을 감소 시켰습니다.
In the 2016 Berlin terror attack a truck was driven into the Berlin Christmas market and was brought to a stop by its automatic braking system.[15] Collision avoidance features are rapidly making their way into the new vehicle fleet. In a study of police-reported crashes, automatic emergency braking was found to reduce the incidence of rear-end crashes by 39 percent.[16] A 2012 study suggests that if all cars feature the system, it will reduce accidents by up to 27 percent and save up to 8,000 lives per year on European roads.[17][18]
2016 년 베를린 테러 공격에서 트럭은 베를린 크리스마스 시장으로 끌려와 자동 제동 시스템에 의해 중단되었습니다. 충돌 회피 기능은 새로운 차량 함대로 급속하게 나아가고 있습니다. 경찰이보고 한 사고 조사에서 자동 비상 제동 장치가 후방 충돌 사고를 39 % 줄였습니다. 2012 년 연구에 따르면 모든 차량에이 시스템이 장착되면 유럽 도로에서 사고가 최대 27 % 감소하고 연간 최대 8,000 명의 생명을 구할 수 있습니다.

Features
Several features are commonly found across collision avoidance systems. Some cars may implement lane departure warning systems.[19]
충돌 회피 시스템에서 일반적으로 여러 가지 기능이 있습니다. 일부 자동차는 차선 이탈 경고 시스템을 구현할 수 있습니다.
Pedestrian detection
Honda has developed since 2004 a night vision system that highlights pedestrians in front of the vehicle by alerting the driver with an audible chime and visually displaying them via HUD. Honda's system only works in temperatures below 30 degrees Celsius (86 Fahrenheit). This system first appeared on the Honda Legend.[20]
To assist in pedestrian safety as well as driver safety, Volvo implemented a pedestrian airbag in the Volvo V40, introduced in 2012.
Honda는 2004 년부터 운전자에게 경고음을 울리고 HUD를 통해 시각적으로 표시함으로써 차량 앞에서 보행자를 강조하는 야간 투시 시스템을 개발했습니다. Honda의 시스템은 섭씨 30도 (화씨 86도) 이하의 온도에서만 작동합니다. 이 시스템은 혼다 전설에 처음 등장했습니다.
보행자 안전 및 운전자 안전을 보조하기 위해 볼보는 2012 년에 도입 된 볼보 V40에서 보행자 용 에어백을 구현했습니다.

Automobile manufacturers
Audi
2010: "Pre sense" autonomous emergency braking system uses twin radar and monocular camera sensors[21] and was introduced in 2010 on the 2011 Audi A8.[22] "Pre sense plus" works in four phases. The system first provides warning of an impending accident, activating hazard warning lights, closing windows and sunroof, and pretensioning front seat belts. The warning is followed by light braking to get the driver's attention. The third phase initiates autonomous partial braking at a rate of 3 m/s² (9.8 ft/s²). The fourth phase increases braking to 5 m/s² (16.4 ft/s²) followed by automatic full braking power, roughly half a second before projected impact. "Pre sense rear", is designed to reduce the consequences of rear-end collisions. The sunroof and windows are closed and seat belts are prepared for impact. The seats are moved forward to protect the car's occupants. 2015 introduced the "avoidance assistant" system that intervenes in the steering to help the driver avoid an obstacle. If an accident occurs the "turning assistant" monitors opposing traffic when turning left at low speeds. In critical situation, it brakes the car. "Multicollision brake assist" uses controlled braking maneuvers during the accident to aid the driver. Both systems were introduced on the Second generation Q7.[23]
2010 : "사전 감지"자율 비상 제동 시스템은 트윈 레이더와 단안의 카메라 센서를 사용하며 2011 년 Audi A8에 2010 년에 소개되었습니다. "Pre sense plus"는 4 단계로 작동합니다. 시스템은 우선 임박한 사고에 대한 경고, 위험 경고등 작동, 창문과 선 루프의 닫힘, 앞 좌석 벨트의 프리 텐셔닝을 제공합니다. 운전자의주의를 끌기 위해 경미한 제동이 뒤따른 다. 세 번째 단계는 3m / s² (9.8ft / s²)의 속도로 자율적 인 부분 제동을 시작합니다. 네 번째 단계는 제동력을 5m / s² (16.4ft / s²)로 증가시킨 다음 자동 제동력, 즉 예상 충돌 이전에 약 0.5 초가 소요됩니다. "Pre sense rear"는 후방 충돌의 결과를 줄 이도록 설계되었습니다. 선 루프와 창문이 닫히고 안전 벨트가 충격에 대비합니다. 좌석은 자동차 탑승자를 보호하기 위해 앞으로 움직입니다. 2015 년에는 운전자가 장애물을 피할 수 있도록 조향 장치에 개입하는 "회피 보조 장치"시스템이 도입되었습니다. 사고가 발생하면 "선회 보조원"은 저속으로 좌회전 할 때 반대편의 교통량을 모니터링합니다. 중요한 상황에서, 그것은 차를 제동합니다. "다중 충돌 브레이크 보조 장치"는 운전자를 보조하기 위해 사고 중에 제어 된 제동 조작을 사용합니다. 두 시스템 모두 2 세대 Q7에 도입되었습니다.

BMW

Ford

General Motors

Honda

Mercedes-Benz

Nissan

Subaru

Toyota

Volkswagen

Volvo
2006: Volvo's "Collision Warning with Auto Brake", developed in cooperation with Mobileye, was introduced on the 2007 S80. This system is powered by a radar/camera sensor fusion and provides a warning through a head up display that visually resembles brake lamps. If the driver does not react, the system pre-charges the brakes and increases the brake assist sensitivity to maximize driver braking performance. Later versions will automatically apply the brakes to minimize pedestrian impacts. In some models of Volvos, the automatic braking system can be manually turned off. The V40 also included the first pedestrian airbag, when it was introduced in 2012.
2013: Volvo introduced the first cyclist detection system. All Volvo automobiles now come standard with a lidar laser sensor that monitors the front of the roadway, and if a potential collision is detected, the safety belts will retract to reduce excess slack. Volvo now includes this safety device as an optional in FH series trucks.[57] 2015: "IntelliSafe" with auto brake at intersection. The Volvo XC90 features automatic braking if the driver turns in front of an oncoming car. This is a common scenario at busy city crossings as well as on highways, where the speed limits are higher.
2006 : Mobileye와 협력하여 개발 된 Volvo의 "Auto Brake와 충돌 경고"가 2007 S80에 소개되었습니다. 이 시스템은 레이더 / 카메라 센서 퓨전에 의해 구동되며 브레이크 램프와 시각적으로 유사한 헤드 업 디스플레이를 통해 경고를 제공합니다. 운전자가 반응하지 않으면 시스템은 브레이크를 사전 충전하고 브레이크 보조 감도를 높여 운전자 제동 성능을 극대화합니다. 최신 버전은 자동으로 보행자 영향을 최소화하기 위해 브레이크를 적용합니다. Volvos의 일부 모델에서는 자동 제동 시스템을 수동으로 끌 수 있습니다. V40은 2012 년에 처음 소개 된 보행자 전용 에어백도 포함했습니다.
2013 년 : 볼보 (Volvo)가 최초의 자전거 탐지 시스템을 발표했습니다. 현재 모든 볼보 자동차에는 도로 전면을 모니터링하는 라이더 레이저 센서가 표준으로 장착되어 잠재적 인 충돌이 감지되면 안전 벨트가 과도한 여유를 줄이기 위해 철회됩니다. 볼보는 현재이 안전 장치를 FH 시리즈 트럭의 옵션 품목으로 포함하고 있습니다. 2015 : 교차로에서 자동 브레이크가있는 "IntelliSafe". 볼보 XC90은 운전자가 다가오는 자동차 앞에서 몸을 돌리면 자동 제동 기능이 있습니다. 바쁜 도시의 횡단뿐만 아니라 속도 제한이 높은 고속도로에서의 일반적인 시나리오입니다.

2017년 10월 21일 토요일

Blind Spot Monitor(include BLIS-Blind Spot Information System, BSW-Blind Spot Warning)

참조: Wikipedia Link
추가 Youtube Link

The blind spot monitor is a vehicle-based sensor device that detects other vehicles located to the driver’s side and rear. Warnings can be visual, audible, vibrating, or tactile.[1][2]
사각 지령 모니터는 운전자 측과 후면에있는 다른 차량을 감지하는 차량 기반 센서 장치입니다. 경고는 시각적, 청각 적, 진동적 또는 촉각적일 수 있습니다.
However, blind spot monitors are an option that may do more than monitor the sides and rear of the vehicle. They may also include "Cross Traffic Alert", "which alerts drivers backing out of a parking space when traffic is approaching from the sides."[1][3]
그러나 사각 지대 모니터는 차량의 측면과 후면을 모니터링하는 것 이상의 기능을 수행 할 수있는 옵션입니다. 또한 트래픽이 측면에서 접근 할 때 운전자가 주차 공간을 후진하는 것을 경고하는 "교차 교통 경고"를 포함 할 수 있습니다.


History
If side view mirrors are properly adjusted on a car, there is no blind spot on the sides.[3][4][5][6] This method was first revealed by George Platzer in a 1995 paper presented to the Society of Automotive Engineers,[3][4][6] but the method is frequently overlooked in driver's education classes and takes some getting used to. Calculated elimination of blind spots by trained drivers is inexpensive and obviates the need for expensive technological solutions to that problem, provided drivers take the time to set up and use their mirrors properly.[3]
사이드 뷰 미러가 차량에서 적절하게 조정되면 측면에 사각 지대가 없습니다. 이 방법은 George Platzer에 의해 1995 년 자동차 엔지니어 협회 (Society of Automotive Engineers) 지에 발표되었지만 운전자 교육 수업에서 간과되는 경우가 많았으며 익숙해 져야했습니다. 숙련 된 운전자가 사각 지대를 계산하여 제거하면 운전자가 거울을 올바르게 설치하고 사용하는 데 시간을 허비한다는 점을 감안할 때 비용이 적게 들고 그 문제에 대한 비싼 기술 솔루션의 필요성을 없앨 수 있습니다.
Platzer received a patent for his blind spot monitor, and it has been incorporated into various products associated with Ford Motor Company.[3] The blind zone mirror has been touted as "an elegant and relatively inexpensive solution" to this recognized problem.[3]
Platzer는 사각 지대 모니터에 대한 특허를 받았으며 Ford Motor Company와 관련된 다양한 제품에 통합되었습니다. 블라인드 존 미러 (blind zone mirror)는 인식 된 문제에 대해 "우아하고 비교적 저렴한 해결책"으로 선전되었습니다.


Blind Spot Warning
Volvo
BLIS is an acronym for Blind Spot Information System, a system of protection developed by Volvo. Volvo's previous parent, Ford Motor Company, has since adapted the system to its Ford, Lincoln, and Mercury brands.
BLIS는 볼보 (Volvo)가 개발 한 보호 시스템 인 맹점 정보 시스템 (Blind Spot Information System)의 머리 글자입니다. Volvo의 이전 부모기업 인 Ford Motor Company는 이후이 시스템을 Ford, Lincoln 및 Mercury 브랜드에 적용했습니다.
This system was first introduced on the redesigned 2007 Volvo S80 sedan and produced a visible alert when a car entered the blind spot while a driver was switching lanes, using two door mounted lenses to check the blind spot area for an impending collision.
이 시스템은 새롭게 디자인 된 2007 Volvo S80 세단에 처음 도입되었으며 운전자가 차선을 변경하는 동안 차가 사각 지대로 들어갔을 때 눈에 띄는 경계를 확인하기 위해 사각 지대를 점검하기 위해 두 개의 도어 장착형 렌즈를 사용하여 눈에 띄는 경보를 울 렸습니다.
Mazda
Mazda was the first Japanese automaker to offer a blind spot monitor, which they refer to as "BSM" (Blind Spot Monitoring). It was initially introduced on the 2008 Mazda CX-9 Grand Touring and remained limited to only that highest trim level through the 2012 model year. For 2013, BSM was standard on both the CX-9 Touring and Grand Touring models.
마쯔다는 사상 최초의 일본 자동차 제조사로서 "BSM"(Blind Spot Monitoring)이라고 부르는 사각 지대 모니터를 제공했습니다. 그것은 처음에 2008의 마쯔다 CX-9 Grand Touring에 소개되었고, 단지 2012의 모델 년을 통하여 그 가장 높은 깔끔한 수준에 한해지고 있었다. 2013 년 BSM은 CX-9 Touring 및 Grand Touring 모델에서 표준으로 사용되었습니다.
Mazda also added BSM to the redesigned 2009 Mazda 6. Blind spot monitoring was standard equipment on the 6i and 6s Grand Touring trim levels, and was an available option on some lower trim levels. Mazda has since expanded the availability of BSM, having added it to the feature list of the Mazda3, CX-5, MX-5 Miata, and the upcoming CX-3, often as part of an option package.
마쯔다는 또한 재 설계된 2009 Mazda 6에 BSM을 추가했습니다. BSM은 6i 및 6s 그랜드 투어링 트림 레벨의 표준 장비였으며 일부 낮은 트림 레벨에서 사용 가능한 옵션이었습니다. Mazda는 이후 Mazda3, CX-5, MX-5 Miata 및 곧 출시 될 CX-3의 기능 목록에 BSM을 추가하여 옵션 패키지의 일부로 추가했습니다.
Ford
Ford uses the acronym BLIS for its blind spot detection. The system is active both in "drive" and "neutral" transmission gears, and is turned off when in reverse or park gears.[7] On Ford products, the system was first introduced in the spring of 2009, on the 2010 Ford Fusion and Fusion Hybrid, 2010 Mercury Milan and Milan Hybrid, and 2010 Lincoln MKZ.
Ford는 사각 지대 탐지를 위해 약어 BLIS를 사용합니다. 이 시스템은 "구동"및 "중립"변속기 모두에서 작동하고 후진 또는 파킹 장치에서 꺼집니다. 포드 제품에 시스템은 2009 포드 퓨전과 퓨전 하이브리드, 2010 머큐리 밀란과 밀라노 하이브리드, 2010 년 링컨 MKZ에서 2009 년 봄에 처음 소개되었습니다.
Mitsubishi
Mitsubishi offers a Blind Spot Warning (BSW) on the Pajero Sport launched in 2016.[8]
Mitsubishi는 2016 년에 출시 된 Pajero Sport에서 BSW (Blind Spot Warning)를 제공합니다.



Active Safety

참조: Link

The term active safety (or primary safety) is used in two distinct ways.
능동 안전 (예방안전? 1차 안전? 우선안전? 능동안전?)이라는 용어는 두 가지 방식으로 사용됩니다.

The first, mainly in the United States, refers to safety systems that help avoid automobile accidents, such as good steering and brakes. In this context, passive safety refers to features that help reduce the effects of an accident, such as seat belts, airbags and strong body structures. This use is essentially interchangeable with the terms primary and secondary safety that tend to be used in the UK.
첫번째, 미국에서는 좋은 조향 및 브레이크와 같은 자동차 사고를 피하는 데 도움이되는 안전 시스템을 의미합니다. 이러한 맥락에서 수동적 안전은 안전 벨트, 에어백 및 강한 신체 구조와 같은 사고의 영향을 줄이는 데 도움이되는 기능을 가리 킵니다. 이 사용은 기본적으로 영국에서 사용되는 1 차 및 2 차 안전이라는 용어와 상호 교환이 가능합니다.

However, active safety is increasingly being used to describe systems that use an understanding of the state of the vehicle to both avoid and minimize the effects of a crash. These include braking systems, like brake assist, traction control systems and electronic stability control systems, that interpret signals from various sensors to help the driver control the vehicle. Additionally, forward-looking, sensor-based systems such as Advanced Driver Assistance Systems including adaptive cruise control and collision warning/avoidance/mitigation systems are also considered as active safety systems under this definition.
그러나, 사고의 영향을 피하고 최소화하기 위해 차량의 상태를 이해하는 능동 안전이 점점 더 많이 사용되고 있습니다. 여기에는 운전자가 차량을 제어하는 ​​데 도움이되는 다양한 센서의 신호를 해석하는 브레이크 보조, 트랙션 제어 시스템 및 전자 안정성 제어 시스템과 같은 제동 시스템이 포함됩니다. 또한, 적응 형 크루즈 컨트롤 및 충돌 경고 / 회피 / 완화 시스템을 포함한 고급 운전 보조 시스템과 같은 미래 지향적 인 센서 기반 시스템도이 정의에 따라 능동적 인 안전 시스템으로 간주됩니다.

These forward-looking technologies are expected to play an increasing role in collision avoidance and mitigation in the future. Most major component suppliers, such as Delphi, TRW and Bosch, are developing such systems. However, as they become more sophisticated, questions will need to be addressed regarding driver autonomy and at what point these systems should intervene if they believe a crash is likely.
이러한 미래 지향 기술은 미래의 충돌 회피 및 완화에 중요한 역할을 할 것으로 예상됩니다. Delphi, TRW 및 Bosch와 같은 대부분의 주요 부품 공급 업체는 이러한 시스템을 개발하고 있습니다. 그러나 그들이 더 정교 해짐에 따라 운전자의 자율성에 관한 질문과 충돌 가능성이 있다고 생각할 때 이러한 시스템이 어느 시점에 개입해야하는지에 대한 질문을 제기해야합니다.

In engineering, active safety systems are systems activated in response to a safety problem or abnormal event. Such systems may be activated by a human operator, automatically by a computer driven system, or even mechanically. In nuclear engineering, active safety contrasts to passive safety in that it relies on operator or computer automated intervention, whereas passive safety systems rely on the laws of nature to make the reactor respond to dangerous events in a favourable manner.
엔지니어링에서 능동 안전 시스템은 안전 문제 또는 비정상적인 상황에 대한 응답으로 활성화되는 시스템입니다. 이러한 시스템은 조작자에 의해, 컴퓨터 구동 시스템에 의해, 또는 기계적으로조차 활성화 될 수 있습니다. 원자력 공학에서 능동적 인 안전은 운영자 또는 컴퓨터 자동 개입에 의존한다는 점에서 수동적 인 안전과 대조되는 반면 수동적 인 안전 시스템은 원자로가 위험한 상황에 유리하게 반응하도록 자연 법칙에 의존합니다.

Examples
The computer operated control rods in a nuclear power station provide an active safety system, whereas a fuel that produces less heat at abnormally high temperatures 
constitutes a passive safety feature
원자력 발전소의 컴퓨터로 작동되는 제어봉은 능동적 인 안전 시스템을 제공하는 반면 비정상적으로 높은 온도에서 열을 덜 생성하는 연료는 수동 안전 기능을 구성합니다
Collision avoidance systems in a modern car
현대 자동차의 충돌 회피 시스템
Many buildings have interconnected fire alarms that can be triggered manually by pushing a button or breaking a glass plate attached to sensors
많은 건물에는 버튼을 누르거나 센서에 부착 된 유리판을 깨서 수동으로 트리거 할 수있는 화재 경보기가 서로 연결되어 있습니다

Automotive sector
In the automotive sector the term active safety (or primary safety) refers to safety systems that are active prior to an accident. This has traditionally referred to non-complex systems such as good visibility from the vehicle and low interior noise levels. Nowadays, however, this area contains highly advanced systems such as anti-lock braking system, electronic stability control and collision warning/avoidance through automatic braking. This compares with passive safety (or secondary safety), which are active during an accident. To this category belong seat belts, deformation zones and air-bags, etc.
자동차 분야에서 능동 안전 (또는 일차 안전)이라는 용어는 사고 이전에 활동중인 안전 시스템을 의미합니다. 이것은 전통적으로 차량의 가시성이 좋고 내부 소음 수준이 낮지 않은 복잡한 시스템을 가리 킵니다. 그러나 요즘에는이 분야에 자동 제동을 통한 안티 락 브레이크 시스템, 전자 안정성 제어 및 충돌 경고 / 회피와 같은 첨단 시스템이 포함되어 있습니다. 이것은 수동적 인 안전 (또는 2 차 안전)과 비교되는데 사고시에 활성화됩니다. 이 범주에는 안전 벨트, 변형 구역 및 에어백 등이 있습니다.
Advancement in passive safety systems has progressed very far over the years, and the automotive industry has shifted its attention to active safety where there are still a lot of new unexplored areas. Research today focuses primarily on collision avoidance (with other vehicles, pedestrians and wild animals)[1] and vehicle platooning.[2]
수동 안전 시스템의 발전은 수년에 걸쳐 매우 진보 해 왔으며 자동차 산업은 여전히 많은 새로운 미개척 분야가있는 적극적인 안전으로 관심을 옮겼습니다. 오늘날의 연구는 주로 충돌 회피 (다른 차량, 보행자 및 야생 동물과 함께) 및 차량 소대에 중점을 둡니다.

Examples of active safety
Good visibility from driver's seat,
Low noise level in interior,
Legibility of instrumentation and warning symbols,
Early warning of severe braking ahead,
Head up displays,
Good chassis balance and handling,
Good grip,
Anti-lock braking system,
Electronic Stability Control,
Chassis assist,
Intelligent speed adaptation,
Brake assist,
Traction control,
Collision warning/avoidance,
Adaptive or autonomous cruise control system.
((Electronic Brake-force Distribution))

Examples of passive safety
Front structure of a Renault Scénic showing crumple zones.
Passenger safety cell,
Crumple zones,
Seat belts,
Loadspace barrier-nets,
Air bags,
Laminated glass,
Correctly positioned fuel tanks,
Fuel pump kill switches













2017년 5월 23일 화요일

Fault Code Status Bits in Automotive Diagnostics

reference: Link

Diagnostic Trouble Code:  
When Fault occurs in vehicle, associated ECU captures it and stores it in memory as fault code. This is specific number for type of Fault and is called Diagnostic Trouble Code. This information can be retrieved either by tools at service station or by in vehicle methodologies.

Operation Cycle:
Operation Cycle is the state in which ECU is operational. This is designer specific and it can be based on specific vehicle modes also. (Ex: Running, Pre-Running, Cranking)

Monitor Routine:
Monitor Routine or Test Routine is the program which runs every operation cycle at some periodicity. They check whether the fault is still injected or active or not. Accordingly counter for the maturity of the fault for active and inactive will be decided. Maturity of the fault confirms the DTC for active and inactive state.

Clearing the DTC:  
DTC clearing is done using the ISO command for requesting Clear from the tester. The service ID is 14 for clearing the current DTCs(Fault code).

DTC status Bits:  
Each DTC will have Status byte that provides the status information of DTC. Each bit in the status bytes has meaning and provides different information.  Let’s start with LSB
Bit0 => This Bit is “testFailed”. This bit provides the information about the fault (Error) is still active (injected) or not.     If Fault is still injected or Active, then the value is 1 otherwise the value is 0.              Ex: Fault “Short Circuit” is still active.
Bit1 =>  This Bit is “testFailedThisOperationCycle”. This bit indicates whether the fault is occurred anytime during the current operation cycle. If Fault has occurred in the current operation cycle, then the value is 1 otherwise the value is 0.
Bit2  => This Bit is “pendingDTC”. This bit indicates whether the fault is occurred anytime during the current operation cycle. The only difference between “testFailedThisOperationCycle” and “pendingDTC” is “testFailedThisOperationCycle” is cleared at the end of current operation cycle (least bothering whether the fault is still active or inactive) and “pendingDTC” is cleared only when in next operation cycle the monitor routine is run and the result shows pass(fault is not present). So if Fault is still injected or Active in the current operation cycle, then the value is 1 otherwise if the Fault was active in previous operation cycle and is inactive (i.e monitor routine is run and fault is inactive) in the current operation cycle, then the value is 0.
Bit3  => This Bit is “confirmedDTC”. This bit informs that fault is continuously active for specific monitor routines and is matured enough in the current operation cycle so that it can be said Confirmed. If fault is active and matured, then the value is 1 otherwise the value is 0.
Bit4  => This Bit is “testNotCompletedSinceLastClear”. This bit informs that monitor routine is not run in the current operation cycle(once after Clearing the DTC is done). The reason for not running in the current operation cycle can be because particular pin is inactive in the operation cycle(Ex: Parked or hibernate vehicle mode). If the monitor routine is not completed this operation cycle, then the value is 1 otherwise the value is 0.
Bit5  => This Bit is “testFailedSinceLastClear”. This bit informs monitor routine has reported that test has failed (at least once Bit0 is set) in any operation cycle at least once after clearing the DTC action is performed. If the fault has occurred after clear DTC is performed, then the value is 1 otherwise the value is 0.
Bit6  => This Bit is “testNotCompletedThisOperationCycle”. This bit informs that the monitor routine is still not run during this current operation cycle. This is because the pin is not active for this operation cycle or when the request is sent from the tester, the monitor routine is not run. If the monitor routine is not run this operation cycle, then the value is 1 otherwise the value is 0.
Bit7  => This Bit is “warningIndicatorRequested”. This bit is used to bring into the attention of the user or driver when the fault occurs. If fault occurs and any monitor is required for specific fault, then the value is 1 otherwise the value is 0.

2017년 5월 14일 일요일

(E, K)Practical Skills You'll Want to Acquire (당신이 얻고싶은 실질적인 기술들) - So, You Wanna Be an Embedded Engineer[Book]


Embedded Engineer 가 되기 위해서 좋은 책들을 검색해 보았는데, 가장 실질적인 조언을 준다고 생각되는 책(So, You Wanna Be an Embedded Engineer)을 찾았고 그 중 마음에 드는 부분을 번역 해 보았습니다.

한국에서 출간되지 않아 영문책을 구매했기 때문에 전체 내용을 제대로 봤다고 생각되지 않지만.. 아래 내용 Practical Skills You'll Want to Acquire (당신이 얻고싶은 실질적인 기술들) 은 심플하면서 이해가 잘 됩니다.


---

Regardless of how far you eventually intend to specialize, there is a small core of baseline skills that will benefit you greatly in any sector of embedded engineering. Some of these skills are taught explicitly in college, some of them are mentioned peripherally but not examined in any great detail, and the remainder are acquired and honed exclusively through practical experience. 
당신이 전문가가 될지 고민하는것과 상관 없이, 임베디드 엔지니어링의 어느 분야를 공부할 것인지에 상관없이 기본이면서도 가장 중요한 부분이 있습니다. 일부분은 대학교에서 명시적으로 알려주기도 하고, 다른 일부분은 대략 주제는 알게되지만 자세하게 이야기 되지 않습니다, 그리고 나머지는 실질적인 경험으로만 단련될 수 있습니다.

I hope the fact that you're reading this book — and presumably somebody paid to buy it — helps to demonstrate that one of the most important skills you can acquire is to learn the lost art of effective reading and writing in the apparently dead language known as English. Most engineers will probably not author full-length books, but any good engineer will write many thousands of words of technical documents in their careers, including the following: 
저는 당신이 이 책을 읽음으로서 — 아마 돈을 내고 샀을 텐데 — 영어로 배우고 쓴다는 것이 중요하다는 것을 배울 수 있었으면 합니다.(의역) 많은 엔지니어들이 책을 쓰지는 않지만 실질적으로 많은 기술에 대한 문서를 작성합니다. 아래 내용들을 포함하여,

• Product specifications, explaining to marketing and the people who write your product manuals exactly what the product will do 
• 제품 설명서, 제품을 쓸 사람에게 이 제품이 어떻게 동작할 것이라는 것을 명확하게 설명

• Protocol specifications, explaining to other engineers how to talk to your product 
• 통신 규약  설명서, 다른 엔지니어에게 제품과 이야기를 나눌 수 있는지 설명

• White papers, describing to other engineers what you've been working on and useful discoveries you've made 
• 논문, 다른 엔지니어들에게 당신이 무엇을 했고 어떠한 유용한 발견을을 했는지 자세하게 설명

• Patent disclosures 
• 특허 공유

• Instructions to subordinates 
• 같이 일하는 사람들(특히 경험이 없는)에게 지시

• Articles for technical journals (Being published in this way can substantially improve your visibility within an organization — think raises and promotions.) 
• 기술 저널에 글 쓰기(이런곳에 글이 실린다는 건 소속된 회사에서 상당한 존재감을 나타낼 수 있음 — 유명해지거나 승진 등)

• Debugging information, communicating with vendors, quality assurance 
technicians and engineering colleagues to solve complex problems 
• 디버깅 정보, 협력사와 논의 하거나, QA부서 인원 그리고 같은 일을 하는 엔지니어들과 복잡한 문제를 푸는 것)

• Justifications (dare I say it) for taking a specific course of action (When things get out of control and the recriminations start to fly, the one with the best paper trail usually wins.)
• 어떤 일을 해야함을 타당한 이유를 들며 설명할 수 있는 것


Most engineering students — in fact, I can generalize wildly and say most science students — regard language skills as a mere waste of time, required by an idiotic college bureaucracy. Unfortunately for these students, it has been my experience — very rarely contradicted — that engineers who can write intelligible and concise documents are precisely the same engineers whose specifications are complete and easy to understand, whose code is well-structured and simple to read, and who have little difficulty communicating effectively with co-workers. 
엔지니어 공부를 하는 학생들은 — 일반적으로 이야기해서 과학을 하는 학생들은 — 언어 공부는 시간낭비라고 생각한다, 관료적인 것이라고 생각합니다. 불행하게도 그런 학생들에게 이야기 하고 싶은 것은, 내 경험을 미루어 보아 — 대부분은 — 이해하기 쉽고, 간결하게 문서를 작성하고 코드가 잘 구조화된 사람들은 동료들과 소통하는데 덜 어려움을 겪습니다.


You'll note that the BSEE breakdown I gave in Section 2.1 only shows six credits of English. This is more or less representative of the average BSEE degree; you can add a little more writing and speaking experience in the liberal arts electives, but no matter how you wiggle your course schedule, a bachelor's degree in engineering is only going to give you the barest possible taste of formally taught language skills.
제 2.1 절에서 언급 한 BSEE 내역은 영어관련 6 학점 만 보여줍니다. 이것은 BSEE의 평균적인 정도를 나타내는 것입니다. 당신은 교양 선택 과목에서 약간의 쓰기와 말하기의 경험을 추가 할 수 있지만 코스의 일정을 어떻게 바꾸어도 공학 학사는 정식적인 언어 능력의 일부만을 경험할 수 있습니다.

You need to practice this. Voracious reading — not just technical books, but fiction and nonfiction by good authors — is essential; reserve time for it in your week (hints: the bath is a great place to relax and read, and Project Gutenberg has numerous free electronic texts you can download to your PDA and read anywhere) . Practice writing wherever you can; before I was ever published, I honed my skills largely in banter — technical and otherwise — on Usenet and, previously, Fidonet. Good language skills can float a competent engineer significantly above their colleagues.
 당신은 더욱 열심히 책을 읽어야 합니다. — 단순히 기술 책이 아니라 좋은 작가의 소설과 논픽션 — 필수적입니다. 한 주마다 그것을 위한 시간을 마련 하십시오 (힌트 : 목욕시간은 읽을 수있는 완벽한 시간입니다 그리고, Project Gutenberg는 많은 책을 PDA에 다운로드할 수 있게 해 주었습니다. ). 시간 있을 때마다 쓰세요. 내가 첫 책을 출판하기 전에, 기술적으로도 그렇지 않아도 Usenet 및 이전 Fidonet에서 나의 능력을 크게 손질했습니다. 뛰어난 언어 능력은 유능한 엔지니어를 동료들과 선명하게 구별지을 수 있게 해줍니다.

Another essential skill set on which you will not touch significantly in formal education is PCB layout and an understanding of DFM (design for manufacturing) concepts. Both of these are specialties in their own right, but from the perspective of the embedded engineer, they're closely related and can be learned at the same time. Although a design engineer in a company of even modest size probably won't spend any significant time working on layouts, there's a great deal of practical value in understanding at least the basics of what is involved in the processes of designing, laying out, and populating (stuffing) PCBs.
정규 교육에서 배우기 힘든 또 하나의 필수 기술은 PCB 레이아웃 및 DFM (제조를위한 설계) 개념의 이해입니다. 모두 임베디드 엔지니어의 전문 분야이며, 임베디드 엔지니어의 관점에서 보면, 그들은 밀접하게 관련되어 있으며, 동시에 배울 수 있습니다. 아마 적당한 크기의 회사의 설계 엔지니어는 아마 레이아웃 작업에 많은 시간을 할애하지 않지만, 적어도, 디자인, 레이아웃 및 프로세스의 프로세스에 관련되는 기초를 이해하는 데에서 PCB를 채우기 (포장 포함)

I'm not counting people for whom English is a second language in this statement. Wherever I write "English" in this section, you can substitute "the engineer's native language." It's language skill, not specifically English skill, that I'm talking about. However, if only because the majority of scientific and technical publications are in English, it would be prudent to study this language if you don't speak it natively.
저는 영어가 제 2 언어 인 사람을 말하고 싶은것은 아니지만, 이 섹션에서는 '영어'라고 쓴 경우, "엔지니어 모국어 '를 의미한다고 할 수 있습니다. 내가 말하고있는 영어 실력이 아니라 언어 능력입니다. 그러나 과학 기술 잡지의 대부분이 영어로 쓰여져 있는 사실을 생각해 보면 영어를 공부해야 하는것이 당연합니다.

A pre-Internet worldwide network of bulletin board systems; my system was ZWSBBS, 3:634/396. 
Fidonet still exists (though greatly shrunken since my days there) and is connected to the Internet at various points — see <http://www.fidonet.org/> for more information.
인터넷 전의 세계적인 네트워크는 BBS(bulletin board systems) 이었습니다. 저의 경우 ZWSBBS, 3:634/396를 사용 했습니다.
Fidonet은 여전히 존재하며 (많이 그 크기가 줄었지만) 다양한 경로로 인터넷과도 연결되어 있습니다. . 자세한 내용은 <http://www.fidonet.org/>를 참조하십시오.

If you work at a large company, you'll have opportunities to talk to the manufacturing engineers and PCB layout artists and glean a lot of useful wisdom; you should seize these opportunities when available. You don't necessarily need to annoy people with incessant questions; merely listening carefully at design reviews will greatly improve your understanding of the issues. There's a very large body of succulent information tidbits that seem intuitively obvious once you hear them, but which you might never think of yourself;
대기업에서 일하는 경우, 제조 엔지니어와 PCB 레이아웃 아티스트와 이야기를하고 많은 유익한 지혜를 모으는 기회가 있습니다. 이 기회를 잘 활용해야 합니다. 끊임없이 질문하면서 괴롭히라는 것은 아닙니다. 설계 검토 회의 시에 신중하게 듣는 것만으로 중요한 부분에 대한 이해가 크게 향상됩니다. 듣기만 해도 직관적으로 이해되는 다량의 정보들이지만 혼자 일했다면 절대 얻지 못할 것입니다.

for example, the need to keep ceramic surface-mount capacitors away from the edges of PCBs to avoid cracking them during depanelization; ensuring that you leave sufficient clearance around a surface-mounted microcontroller to allow use of a test clip; understanding how components drift or self- align on their pads when they go through the infrared reflow oven; and so on.
예를 들어, PCB를 자를 때(depanelization) 세라믹 표면 실장 커패시터를 PCB의 가장자리에서 멀리 떨어지게 유지해야 커패시터가 부서지는(cracking) 되는 것을 막을 수 있습니다. 테스트 클립을 사용(연결)할 수 있도록 표면 장착형 마이크로 컨트롤러 주변에 충분한 여유 공간을 확보하십시오. 적외선 reflow 오븐을 통과 할 때 패드에서 부품이 어떻게 이동 및  자체 정렬되는지 이해 등등

You'll also need a lot of practical software debugging experience. A good starting point for this is simply your college courses — if you work at the computer science and other programming-related course work with sufficient assiduity, you'll have a reasonable start on the methodology of software debugging by the time you graduate. However, one issue for which school will leave you almost completely unprepared is how to jump in at the deep end and start maintaining someone else's large code project.
실용적인 소프트웨어 디버깅 경험이 많이 필요할 것입니다. 이 과정을 시작하기에 좋은 출발점은 단순히 대학 과정입니다. 컴퓨터 과학 및 기타 프로그래밍 관련 과정을 충분히 조화롭게 공부하면 졸업 할 때까지 소프트웨어 디버깅 방법론을 합리적으로 시작할 수 있습니다. 그러나 학교에서 거의 준비가 안되는 문제 중 하나는 다른 사람의 대규모 코드 프로젝트의 심층적 인 상황에 뛰어 들어 유지보수를 해보는 것입니다.

It is practically guaranteed that your first job (and every subsequent job, for that matter) is going to involve maintaining some legacy code. You can be very lucky and find code that is accurately documented and well-commented, or you can encounter code (as I have) that contains no comments at all and is structured in such a complex and bizarre fashion that adding or removing a single comment line can cause the compiler to abort with an internal error. The most useful learning technique I have found for this is to take an open-source project and add specific simple functionality to it. For instance, you might set yourself the goal of modifying the IDE driver in the Linux kernel so that it turns on a
첫 번째 직업 (및 모든 후속 직업)에는 기존 코드를 유지 관리하는 것이 사실상 확률적으로 당연할 것입니다. 정확하게 문서화되고 잘 주석 처리 된 코드를 보는 것은 운이 정말 좋은 것이며, 개인적인 나의 경험처럼 주석이 전혀없는 거나 하나의 주석을 추가하거나 제거하하면 예상하지 못한 컴파일 에러가 생기거나 내부 에러가 생기는 코드를 보게 될 수도 있습니다. 내가 찾은 가장 유용한 학습 기술은 오픈 소스 프로젝트를 가져 와 간단한 기능을 추가해 보는 것입니다. 예를 들어 리눅스 커널의 IDE driver를 수정하는 것을 목표로 할 수도 있습니다.

A general disadvantage of learning in the school context is that you know that the problem you've been assigned has a solution, you know that you have been given the skills and the time to find that solution, and you can make inferences (from where your class is up to in the curriculum) as to which specific skills are likely to be relevant to the problem. Real-world problems don't have any of these guarantees or hints; you're on your own with a clock (and budget) steadily ticking away and management breathing down your neck. Enjoy your time at school; these are the easiest problems you will ever be asked to solve.
학교 학습의 일반적인 단점은 당신이 할당 된 문제에 해결책이 있다는 것을 알고, 기술과 그 해결책을 찾을 수 있는 시간을 얻었고, 추론을 할 수 있다는 것을 알고 있다는 것입니다.(당신의 수업은 커리큘럼이 짜져 있으니..) 어떤 특정 기술이 문제와 관련이 있을지 결정합니다. 현실 세계에서는 이러한 보장이나 힌트가 없습니다. 시간은 가지만 (그리고 돈도 없어지고) 경영진이 당신 바로 뒤에 지켜보고 있습니다.. 학교에서 즐거운 시간 보내십시오. 학교에서의 과제들은 당신이 풀어야 할 가장 쉬운 것들입니다.

red LED whenever a write operation is requested from the application layer, or a green LED for read operations. A more challenging project might be to take an open-source operating system, such as NetBSD or eCos, and port it to a new board. In any case, the goal is to understand enough of the existing code to know where to insert your changes and modify the code as nonintrusively as possible to avoid creating bugs.
쓰기 작업이 응용 프로그램 계층에서 요청 될 때마다 빨간색 LED 또는 읽기 작업에 녹색 LED가 표시됩니다. 더 어려운 프로젝트는 NetBSD 또는 eCos와 같은 오픈 소스 운영 체제를 사용하여 새 보드에 포팅하는 것입니다. 어쨌든, 목표는 기존 코드를 충분히 이해하여 변경 사항을 삽입 할 곳을 파악하고 가능하면 코드를 수정하여 버그를 만들지 않도록하는 것입니다.

Finally, most embedded engineers are going to need at least rudimentary laboratory skills. This includes being able to solder up prototypes and operate an oscilloscope, signal generator, and spectrum analyzer. The introduction you'll receive in college is probably adequate grounding in this; you'll gain much greater facility with experience, of course. In this day and age, it's also very useful to be able to work with surface-mount components. You can practice this very inexpensively on any junked piece of hardware — an old PC motherboard, a DVD player, or any similar board with lots of parts on it. 
마지막으로, 많은 임베디드 엔지니어들은 기본적인 연구소 기술을 익혀야 합니다. 그것들에는 프로토타입을 직접 납땜해서 만들 수 있다거나, 오실로스콥을 작동시키고, 시그널 생성기를 만지고, 스펙트럼 분석기를 쓸 수 있는 것들 입니다. 당신이 대학에서 받게 될 소개는 이것에서 적절한 접지 일 것입니다; 물론 훨씬 더 큰 편의 시설을 경험하게 될 것입니다. 이 시대에는 표면 실장 부품으로 작업하는 것이 매우 유용합니다 - 오래된 PC 마더 보드, DVD 플레이어 또는 그 위에 많은 부품이있는 유사한 보드를 사용 하는 것

I'm sure you've noted the recurring theme here: even if you learn some skills theoretically at school, I'm exhorting you to find opportunities to keep working at example problems requiring those skills in real life. Furthermore, a lot of what you need to know can only be acquired through dealing with actual problems. Engineering is a practical discipline. Steep yourself in homebrew projects to keep your skills fresh and ready for action; you're also demonstrating self-motivation to future employers.
당신은 지금까지 반복된 내용을 알았을 겁니다: 만약 학교에서 이론적으로 어떤 기술을 익혔을 지라도, 그 내용들을 실제 상황에서 볼 수 있는 기회를 찾기를 바랍니다. 많은 것들이 실제 경험을 통해서만 알 수 있습니다. 엔지니어링은 실질것인 것입니다. 신 기술에 적응하고 바로 실행할 수 있도록 하려면 자신을 숙성시키기 위해 노력을 해야 합니다. 당신은 미래 고용자들에게 어필을 하는 것입니다.


2017년 5월 2일 화요일

watchdog timer

A watchdog timer (sometimes called a computer operating properly or COP timer, or simply a watchdog) is an electronic timer that is used to detect and recover from computer malfunctions.

During normal operation, the computer regularly resets the watchdog timer to prevent it from elapsing, or "timing out".

If, due to a hardware fault or program error, the computer fails to reset the watchdog, the timer will elapse and generate a timeout signal.

The timeout signal is used to initiate corrective action or actions.

The corrective actions typically include placing the computer system in a safe state and restoring normal system operation.


Watchdog timers are commonly found in embedded systems and other computer-controlled equipment where humans cannot easily access the equipment or would be unable to react to faults in a timely manner.

In such systems, the computer cannot depend on a human to reboot it if it hangs; it must be self-reliant.

For example, remote embedded systems such as space probes are not physically accessible to human operators; these could become permanently disabled if they were unable to autonomously recover from faults.

A watchdog timer is usually employed in cases like these.

Watchdog timers may also be used when running untrusted code in a sandbox, to limit the CPU time available to the code and thus prevent some types of denial-of-service attacks.

reference
    Link 1: english Wikipedia
    Link 2: korean Wikipedia

2017년 4월 29일 토요일

(E)Silicon Labs C8051 LED Blinky Example Explained(C8051 chip 기본동작 LED 예제로 설명하기)

Purpose
for newbie(software engineer) to understand basic concept of embedded programming.
line by line explanation.

Preparation
board: C8051F560 Development Kit
part(Chip): C8051F568-ACK06Z
datasheet: C8051F55x/56x/57x
development kit document: C8051F560 DEVELOPMENT KIT USER ’S GUIDE
development Tool: Simplicity Studio v4
silicon labs debugger
PC(notebook)

Prerequisite
install simplicity studio v4
connect PC-board-debugger

Create (example) project
simplicity IDE - File - New - Project - Silicon Labs MCU Project
select board
select part
select project type:example
select f55x-57x Blinky
copy contents

Explanation
1. Program Description:
  This program flashes the green LED on the C8051F560 target board about
  five times a second using the interrupt handler for Timer2.

2. How To Test:
  1) Download code to the 'F560 target board
  2) Ensure that the P1.3 pins are shorted together on the J19 header
  3) Run the program.  If the LED flashes, the program is working
  J19: Side A: Connects P1.3_A LED and P1.4_A Switch to MCU port pins


3. Code:
  // Includes
  // Global CONSTANTS -> set system clock speed, and select pin to connect to LED
  // Function PROTOTYPES
  //// OSCILLATOR_Init -> set oscillator speed
  //// PORT_Init -> set pin to manipulate LED
  //// TIMER2_Init -> set timer speed, init(&reload) value, enable interrupt and start timer
  // Interrupt Service Routines
  //// Timer2_ISR -> set interrupt service routine function when timer executed
  // MAIN Routine -> initialize and execute while not to exit firmware.

4. line by line code explanation.
    1) Total 175 line of Code
        - 93 lines of Comments
        - 16 lines of new line
        - 66 line of (meaningful) code
    2) will be continued

37: #include <SI_C8051F550_Defs.h>
-> SFR(Special Function Register) address
-> (IRN) Interrupt Request Numbers

38: #include <SI_C8051F550_Register_Enums.h>
-> Register Names

44: #define SYSCLK       24000000/8        // SYSCLK frequency in Hz
SYSCLK : System  Clock
Processor Clock: Chip Clock
-> more explanation needed
reference: Link

46: SBIT (LED, SFR_P1, 3);                 // LED='1' means ON
LED is variable to connect SFR_P1(port 1), pin 3 with rear LED.
so LED=1 make LED light on

52: void OSCILLATOR_Init (void);
initialize oscillator for oscillation of the crystal

53: void PORT_Init (void);
set pin to execute the chip for purpose
in this case LED pin

54: void TIMER2_Init (U16 counts);
configuration timer 2 to execute chip.
configure consists Interrupt Service Routine, Auto-reload, Timer base

59 ~ 75: Main
explained later

88 ~ 96: OSCILLATOR_Init function
88: void OSCILLATOR_Init (void)
89: {
90:    U8 SFRPAGE_save = SFRPAGE;
To read or modifying the SFR value, we need to contact the register.
the steps are
1. Select the appropriate SFR page number using the SFRPAGE register.
2. Use direct accessing mode to read or write the special function register (MOV instruction).

SFR has pages, for C8051F55x/56x/57x family of devices utilizes three SFR pages: 0x00, 0x0C, and 0x0F (ref: datasheet 12.1. SFR Paging)

91:    SFRPAGE = CONFIG_PAGE;
CONFIG_PAGE is 0x0F, and to modify OSCICN register this address should be accessed
92:
93:    OSCICN = 0xC4;                      // Set oscillator divide to /8
OSCICN: Internal Oscillator Control
0xC4 saids 100: SYSCLK derived from Internal Oscillator divided by 8.
datasheet saids SFR Address = 0xA1; SFR Page = 0x0F
so this makes system clock to 24000000(default) / 8 (line 44)
94:
95:    SFRPAGE = SFRPAGE_save;
return pre-sfrpage
96: }

111: void PORT_Init (void)
112: {
113:    U8 SFRPAGE_save = SFRPAGE;
114:    SFRPAGE = CONFIG_PAGE;
115:
116:    P1MDOUT |= 0x08;                 // Enable LED as a push-pull output
P1MDOUT was declared as
SFR (P1MDOUT,     0xA5); ///< Port 1 Output Mode
0xA5 address's value is assigned to P1MDOUT
to configure P1MDOUT(Port 1 mode Out)
it can be done with config2.exe
0x08 is 00001000 as binary and this means port 1 pin 3 is push-pull output
117:    P1SKIP  |= 0x08;                    // Skip the LED pin on the crossbar
skip port 1 pin 3 not to connect any peripheral
119:    XBR2     = 0x40;                    // Enable crossbar and weak pull-ups
see ref1 below
121:    SFRPAGE = SFRPAGE_save;
122: }

137: void TIMER2_Init (U16 counts)
138: {
139:    U8 SFRPAGE_save = SFRPAGE;
140:    SFRPAGE = LEGACY_PAGE;

142:   TMR2CN  = 0x00;                  // Stop Timer2; Clear TF2;
                                                 // use SYSCLK/12 as timebase
144:   CKCON  &= ~0x60;               // Timer2 clocked based on T2XCLK; <- same as above comment(SYSCLK/12 as timebase)

146:   TMR2RL  = -counts;              // Init reload values
timebase is 250,000 hz(250,000 cycles in 1 second)
counts value is 25,000(number, cycles) so
25,000 times takes 25,000 / 250,000 * 1seconds = 1/10 seconds.
this means 10hz frequency
147:   TMR2    = 0xFFFF;                // Set to reload immediately
148:   IE_ET2  = 1;                        // Enable Timer2 interrupts
149:   TMR2CN_TR2 = 1;               // Start Timer2

151:   SFRPAGE = SFRPAGE_save;
152:}

Timer 2
-> check the block diagram related to each register
-> understand datasheet register definition


166: INTERRUPT(TIMER2_ISR, TIMER2_IRQn)
when timer2 interrupt occurs(TIMER2_IRQn, 5 as constant) this TIMER2_ISR function(interrupt service routine) executed
167: {
168:    TMR2CN_TF2H = 0;               // Clear Timer2 interrupt flag
clear flag for next interrupt, because this function already executed.
169:    LED = !LED;                         // Change state of LED
LED represents LED pin
toggle means once on and once off when this interrupt service routine occurs
170: }

ref1: Link
Basically, it gives the designer the flexibility to chose which pins the desired peripheral is routed to. Let's say you have a UART devices that needs to connect to pins P1.0 and P1.1. The crossbar allows you to bring that signal out to that pin or a different supported pin in another design. Think of it as a multiplexer. Each physical pin is an output and all the peripherals are the inputs.

Hope that helps. Every micro controller has this sort of functionality, though usually a pin is limited to a few peripherals it can connect to. This is generally called "pin muxing".

2017년 4월 28일 금요일

Memory Types on Embedded Programming(Memory의 종류 및 고려해야 할 점)

Memory의 종류 및 고려해야 할 점

1. 전원을 차단 시 특성에 의한 구분
    1) 지워지는 것
        - RAM: Random Access Memory
    2) 지워지지 않는 것
        - ROM: Read Only Memory

2. 세부 종류
    1) RAM
        SRAM

    2) ROM
        Flash
        EEPROM

3. 메모리가 필요한 예시
    1) 전원이 꺼져도 없어지지 않아야 한다: 코드
    2) 프로그램 실행: 실제 실행되는 Binary -> 코드가 변환하여 Upload
    3) 프로그램 실행 시 사용되고, 전원이 꺼져도 없어지지 않아야 하는것: Setting 값 등

-> 설명: 코드는 전원이 꺼져도 없어지지 않아야 하니까 ROM 의 한 종류인 Flash 에 저장이 된다. 그리고 전원이 들어오면 실행이 되어야 하기 때문에 이 코드를 RAM Memory 에 올리고 MCU 가 실행 된다. 보통은 RAM 영역에서 실행하고 전원을 끄면 RAM의 내용이 지워지면 되지만 Setting 값 들(모니터의 밝기 등)은 저장되어 있는 것이 고객이 사용하기에 편리하기 때문에 이런 특성을 가진 변수를 저장할 때는 ROM의 한 종류인 EEPROM을 사용한다. EEPROM은 같은 ROM인 Flash에 비해 read/write 속도가 느리고 쓰는 횟수도 제한되어(10만번) 있다.

4. 실제 사용하고 싶은 MCU 를 선택 할 때 고려할 것
    - 사용할 코드의 크기 -> Flash
    - 실제 프로그램에 실행 시 RAM에 올릴 코드의 크기 -> SRAM
    - 전원이 꺼져도 계속 값이 유지되어야 하는 값들 -> EEPROM
    -> 동일 Family 의 MCU 라도 메모리 크기에 의한 Chip 이 따로 있는 이유이다.


참조: http://www.icbanq.com/pbloger/board_View.aspx?number=965

SRAM 은 DRAM에 비하여 5배 빠르며 비싸다.
Static의 의미는 전기를 주는 한 데이터가 지워지지 않는다는 의미이며, Dynamic은 1초마다 refresh(Capacitor에 전자를 채워 주는 것)를 해 줘야 데이터가 유지된다.
보통 MCU의 RAM에 SRAM만 있는 이유는 속도 때문이라고 생각한다.


참조: http://yeslab.tistory.com/20


용량이 큰 경우에는 돈이 중요하기 때문이다.

참조: http://terms.naver.com/entry.nhn?docId=1180951&cid=40942&categoryId=32832

flash 와 EEPROM의 비교

flash 는 싸며 빠르며 큰 block 단위로 지우고 쓸 수 있다.
EERPOM은 상대적으로 비싸며 느리며 작은 block 단위로 지우고 쓸 수 있다.
적은 크기의 데이터를 쓴다면 EEPROM 이 맞고 큰 크기의 데이터가 필요하며 flash 가 맞다.

flash 안에서도 program flash, data flash 를 나누어서 쓰고 있는데 말 그대로 프로그램 code가 저장되는 곳이 program flash 이며 사용할 데이터(setting 값 같은) 를 저장하는 곳이 data flash 이다.
EEPROM, program flash, data flash 중 어떤 것을 선택할지는 기능과 가격을 고려해서 사요할 것이며 유사 프로젝트에서 경험적으로 진행 할 것이라고 생각한다.

그리고 ROM(Read Only Memory) write 의 횟수가 적다는 의미이지(주로 사용하는 기능이 Read) write가 안된다는 말이 아니다.

참조1/2: https://en-sg.knowledgebase.renesas.com/English_Content/MCUMPU/Basic_Information/What_is_the_difference_between_%22program_ROM%22_and_%22data_flash%22%3F
참조2/2: https://en.wikipedia.org/wiki/Flash_memory

EEPROM 크기가 작기 때문에 필요한 경우가 많은데 가격이 비싸다 그래서 가격이 싼 flash memory를 EEPROM 과 같이 쓰기 위해서 emulation을 한다. 문제는 flash가 하나의 큰 블럭 단위로 지우고 쓰기 때문에 EEPROM 과 같이 작은 단위의 블록으로 활용하려면 이를 위한 알고리즘이 필요하다. 결국 flash memory를 하나의 블럭을 전부 쓴 다음에만 지우는 것이 필요하게 된다.

참조1/2: https://www.ecnmag.com/article/2007/09/benefits-flash-eeprom-re-programming-end-application-becomes-easy
참조2/2: https://electronics.stackexchange.com/questions/258851/flash-eeprom-emulation

DDR 도 RAM 으로 사용하는 메모리의 한 종류

Program Flash, Data Flash, SRAM 으로 기본 메모리가 이루어져 있고
이 중 Flash 에서 Flash NVM(64KB), SRAM 중에서 Flash RAM(4KB) 을 사용하여 EEPROM Emulation 을 진행한다 이렇게 되면 EEPROM 을 10년 사용할 수 있게 된다.

2017년 4월 23일 일요일

Image Process Pipeline

Image Sensor 에서 이미지를 획득(Acquisition) 한 다음 이미지 프로세싱을 수행하고 이 이미지 프로세싱을 나열한 것이 pipeline 이다. 이 pipeline 이 지나면 최종 이미지(YUV 이미지?)가 생성된다.

So what purpose does ISP have? Well, pixels are sensitive to light between some set of wavelengths, essentially they’re color agnostic.
ISP 의 목적은 무엇인가? pixel은 빛에 민감하다(관련된 특성은 빛 파장이며, 이 때 색은 감지하지 못한다(agnostic, 불가지론의).)

The way to get a color image out is to put a filter on top, usually a bayer pattern color filter, then interpolate the color of the pixels adjacent.
색을 얻는 방법은 필터를 센서 위에 두는 것이다, 보통 베이어 패턴의 색 필터를 사용한다. 그 후에는 interpolate로 주변 픽셀의 색을 구한다. (한 픽셀은 R, G, B 중 한가지만 얻을 수 있기 때문에)

Your 8 MP CMOS doesn’t sense red green and blue for each pixel, it senses one color for each, then ISP guesses the color based on what’s next to it. This is called demosaicing, and it’s probably the primary job of ISP, and there are many secret sauce methods to computing this interpolated image.
8메가의 CMOS 센서는 빨간색, 녹색, 파란색을 각 픽셀에서 얻지 못한다. 하나가지 색만 감지해 낼 수 있다. 그리고 ISP는 주변의 색을 추측 해 낸다. 이것을 demosic 한다고 한다. 이것이 ISP의 가장 기본적인 일이다. 그리고 ISP는 이 interpolate 된 이미지를 가지고 많은 일을 한다.

In addition ISP does all the other housekeeping, it controls autofocus, exposure, and white balance for the camera system.
ISP는 autofocus, exposure, white balance 도 한다.

Recently correcting for lens imperfections like vignetting or color shading imparted by the imperfect lens system (which you’ll add right back in with instagram, you heathen) has been added, along with things like HDR recombining, noise reduction, other filtering, face or object detection, and conversion between color spaces.
최근에는 lens의 불완전함(비네팅, 컬러 쉐이딩 - 렌즈의 불완전함 때문에 생긴) 을 바로 잡기도 하며 HDR recombining, noise reduction, 다른 filtering, 얼굴 인식, 물체 인식, 색 공간간의변환 등도 수행 합니다.

There’s variance between the features that ISP does, but this is really the controller for getting that bayer data into a workable image array.
ISP 에서 하는 일은 ISP의 종류에 따라 다양 하지만, bayer를 사용 가능한 image array 로 만든 다음 그것을 조작 하는 것임은 틀림 없습니다.



참조
http://www.anandtech.com/show/6777/understanding-camera-optics-smartphone-camera-trends/4
https://www.einfochips.com/blog/consumer-electronics/a-peek-inside-your-camera-i-image-signal-processing-isp-pipeline.html
https://www.einfochips.com/blog/consumer-electronics/a-peek-inside-your-camera-ii-image-sensor-modules.html

Image Sensor

Image Processing 을 이해하기 위한 Image Sensor 종류 확인

보통 CMOS 센서를 쓰고, 빛의 양(회색 빛)을 숫자로 받을 수 있으며 색을 확인하기 위하여 Bayer filter 를 사용하여 interpolation 을 하면 digitize(숫자화, 여기서는 양자화 까지 포함?) 된, matrix 형태의 이미지를 받을 수있다.
궁금한 것은 sensor 의 셋팅을 통하여 센서에서 받는 이미지의 값이 달라지고 이것이 최종 이미지 품질을 변화시킬 텐데
sensor 셋팅을 통해서 할 수있는 일들이 무엇인지 궁금하다. 왜냐하면 이미지 프로세싱과 구분이 잘 안되기 때문이다.


아래 내용 참조: https://en.wikipedia.org/wiki/Image_sensor

An image sensor or imaging sensor is a sensor that detects and conveys the information that constitutes an image. It does so by converting the variable attenuation of light waves (as they pass through or reflect off objects) into signals, small bursts of current that convey the information. The waves can be light or other electromagnetic radiation. Image sensors are used in electronic imaging devices of both analog and digital types, which include digital cameras, camera modules, medical imaging equipment, night vision equipment such as thermal imaging devices, radar, sonar, and others. As technology changes, digital imaging tends to replace analog imaging.
이미지 센서 혹은 이미징 센서는 이미지 정보를 감지하고 전달한다. 빛 파장의 가변감쇄를 통하여(통과 시키거나 반사하면서) 시그널이나, 적은 저항으로 이미지 정보를 저장한다. 그 파자은 빛이나 다른 전자기복사가 될 수 있다. 이미지 센서는 전자 이미지 장치(아날로그, 디지털 타입 모두)에 사용된다. 디지털 카메라, 카메라 모듈, 의료 이미징 장비, 야간 투시경 장비(열 감지 장치, 레이다, 음향포정장치 등)에 사용된다. 기술이 변화하면서 디지털 이미징은 아날로그 이미징으로 옮겨가고 있다.

Early analog sensors for visible light were video camera tubes. Currently, used types are semiconductor charge-coupled devices (CCD) or active pixel sensors in complementary metal–oxide–semiconductor (CMOS) or N-type metal-oxide-semiconductor (NMOS, Live MOS) technologies. Analog sensors for invisible radiation tend to involve vacuum tubes of various kinds. Digital sensors include flat panel detectors.
초기 사람에게 보이는 영역(가시광)을 위한 아날로그 센서는 비디오 카메라 튜브 였습니다. 현재 사용되는 센서의 타입은 반도체 CCD(charge-coupled devices)나 active Pixel sensor인 CMOS(complementary metal–oxide–semiconductor) 혹은 NMOS(N-type metal-oxide-semiconductor) 기술 입니다. 보이지 않는 영역을 위한 아날로그 센서는 다양한 vaccum tube를 포함하고 있습니다. 디지털 센서는 평평한 판넬 감지기를 포함합니다.


CCD vs CMOS technology
Today, most digital cameras use a CMOS sensor, because CMOS sensors perform better than CCDs. An example is the fact that they incorporate an integrated circuit, helping reduce costs. CCD is still in use for cheap low entry cameras, but weak in burst mode.[1] Both types of sensor accomplish the same task of capturing light and converting it into electrical signals.
오늘, 대부분의 디지털 카메라는 CMOS 센서를 사용한다. 왜냐하면 CMOS 센서는 CCD 보다 나은 성능을 내기 때문이다(-.-;). 예를 들면 CMOS는 가격을 줄이는 데 도움이 되는 집적회로를 포함하고 있다. CCD는 보통 싼 기본기능이 탑재된 카메라에 쓰인다. 하지만 독점 방식에 약하다. 두개의 (센서)타입 모두 빛을 캡쳐해서 전자 시그널로 변환하는 기능을 수행한다.

Each cell of a CCD image sensor is an analog device. When light strikes the chip it is held as a small electrical charge in each photo sensor. The charges in the line of pixels nearest to the (one or more) output amplifiers are amplified and output, then each line of pixels shifts its charges one line closer to the amplifier(s), filling the empty line closest to the amplifiers(s). This process is then repeated until all the lines of pixels have had their charge amplified and output.[2]
CCD 이미지 센서의 각 셀은 아날로그 장치이다. 빛이 센서의 개별 칩(픽셀)에 부딧힐 때 작은 전하가 생긴다. 아웃풋 증폭기와 가까운 row 픽셀 라인의 전하들은 증폭되고 아웃풋 된다(?) 그리고 각 픽셀 라인은 그 전하를 가장 가까운 빈 라인을 채우면서 한 라인 가까운 증폭기에 시프트 시킨다. 이프로세스는 모든 픽셀 라인이 전하로 채워질 때까지 계속된다.

A CMOS image sensor has an amplifier for each pixel compared to the few amplifiers of a CCD. This results in less area for the capture of photons than a CCD, but this problem has been overcome by using microlenses in front of each photodiode, which focus light into the photodiode that would have otherwise hit the amplifier and not be detected.[3] Some CMOS imaging sensors also use Back-side illumination to increase the number of photons that hit the photodiode.
CMOS 이미지 센서는 각 픽셀에 증폭기가 달려있어 상대적으로 적은 CCD 와 비교된다. 이 차이가 적은 포톤을 잡는 특징을 만들었지만, 이 문제는 각 포토다이오드 앞에 빛을 포토다이오드에 포커스 하게 해주는 마이크로렌즈를 사용함으로써 빛이 증폭기를 비춰서 디텍트 되지 않을수 있는 위험을 없애 주었다. 일부 CMOS 이미지 센서는 뒷면 조명을 사용하여 포토 다이오드를 치는 포톤의 수를 증가시켜 주었다.(?)

CMOS sensors can potentially be implemented with fewer components, use less power, and/or provide faster readout than CCD sensors.[4] They are also less vulnerable to static electricity discharges.
CMOS 센서는 CCD보다 잠재적으로 적은 수, 적은 파워 그리고 빠른 해독이 가능하다. 그리고 정전기에도 덜 연약하다.

Another hybrid CCD/CMOS architecture, sold under the name "sCMOS," consists of CMOS readout integrated circuits (ROICs) that are bump bonded to a CCD imaging substrate – a technology that was developed for infrared staring arrays and now adapted to silicon-based detector technology.[5] Another approach is to utilize the very fine dimensions available in modern CMOS technology to implement a CCD like structure entirely in CMOS technology. This can be achieved by separating individual poly-silicon gates by a very small gap. These hybrid sensors are still in the research phase and can potentially harness the benefits of both CCD and CMOS imagers.[6]
또 다른 CCD/CMOS 를 조합한 구조는, 'sCMOS' 라고 하며, CMOS 해독 집적회로(ROICs) 가 CCD 이미지 기판에 붙어 있다 - 이 기술은 적외선 응시 배열 때문에 만들어 졌으며 지금은 실리콘 기반의 탐지 기술에도 적용 되고 있다.  ...

Performance
There are many parameters that can be used to evaluate the performance of an image sensor, including dynamic range, signal-to-noise ratio, and low-light sensitivity. For sensors of comparable types, the signal-to-noise ratio and dynamic range improve as the size increases.


Color separation
There are several main types of color image sensors, differing by the type of color-separation mechanism:
color 를 sensing 하기 위하면 몇가지 다른 방법이 있다.

1) Bayer filter sensor,
low-cost and most common, using a color filter array that passes red, green, or blue light to selected pixel sensors, forming interlaced grids sensitive to red, green, and blue – the missing color samples are interpolated using a demosaicing algorithm. In order to avoid interpolated color information, techniques like color co-site sampling use a piezo mechanism to shift the color sensor in pixel steps. The Bayer filter sensors also include back-illuminated sensors, where the light enters the sensitive silicon from the opposite side of where the transistors and metal wires are, such that the metal connections on the devices side are not an obstacle for the light, and the efficiency is higher.[7][8]

2) Foveon X3 sensor,
using an array of layered pixel sensors, separating light via the inherent wavelength-dependent absorption property of silicon, such that every location senses all three color channels.

3) 3CCD,
using three discrete image sensors, with the color separation done by a dichroic prism.






















2017년 4월 22일 토요일

Video compression picture types(I, P, B frames)

계기: i frame 과  p frame 이 무엇이고 그 차이점을 이해하기 하기 위하여

I‑frame (Intra-coded picture)
사진의 모든 정보, P-frame과 B-frame은 이미지의 일부(압축된)만 가지고 있으므로 I-frame에 비해 크기가 작다.

P-frame (Predicted picture)
이전 이미지에서 변경된 정보만을 가지고 있는 frame. delta-frames 라고도 부른다.

B-frame(Bi-predictive picture)
지금, 이전, 그리고 다음의 프레임의 다른 점을 저장하여 더(P-frame 보다?) 공간을 줄이는 것

참조: https://en.wikipedia.org/wiki/Video_compression_picture_types

VGA와 HD의 차이점

VGA: Video Graphics Array
HD: High Definition

풀HD는 :1080i/p  (1920*1080)의 픽셜갯수를 갖은 영상!!
HD는 :  720i/p    (1280* 720)의 픽셜의 갯수를 갖은 영상!!
VGA는:              (640*480  ) 의 픽셜의 갯수를 갖은 영상이라고 생각하면 됩니다


Video Connector 종류






참조: http://www.bobaedream.co.kr/board/bulletin/view.php?code=tour&No=410315

HDR 과 SDR

HDR: High Dynamic Range
SDR: Standard Dynamic Range

Dynamic Range:  ratio between the largest and smallest values that a certain quantity can assume.

SDR:  the dynamic range of images/rendering/video using a conventional gamma curve.

참조: http://communityforums.rogers.com/t5/blogs/blogarticlepage/blog-id/CommunityBlog/article-id/806



conventional: 전통적인

gamma correction: 목적은 인간 시각의 비선형성에 맞추어 정보를 부호화하려는 것이므로, 많은 경우 감마 부호화(gamma encoding)라는 표현이 더 적합하다. 인간 시각은 카메라의 다이나믹 레인지보다 훨씬 높은 명암차이를 감지할 수 있으며 색상이나 해상도차이에 비해 명암의 차이에 민감하다. 디스플레이 장치의 발전에 따라서 다이나믹 레인지를 보다 잘 표현하기 위해서 기존의 영상 시스템의 활용성을 높이면서 시각에 민감한 부분의 데이터를 보다 효율적으로 압축 전달하기 위한 방향으로 gamma encoding이 개발, 발전 되고 있다.
참조
    1) https://en.wikipedia.org/wiki/Gamma_correction
    2) https://ko.wikipedia.org/wiki/%EA%B0%90%EB%A7%88_%EB%B3%B4%EC%A0%95


2017년 4월 17일 월요일

Simplicity(C 언어) 사용 시 Terminology

대상: Chip C8051-F560


CLI: Command Line Interface

HCI: Human–computer interaction

SMbus: The System Management Bus (abbreviated to SMBus or SMB) is a single-ended simple two-wire bus for the purpose of lightweight communication.

숫자 뒤의 'U'
C 언어에서 기본으로 int 이므로 뒤에 U 를 쓰면 unsigned 가 된다.
참조: http://stackoverflow.com/questions/9029974/what-does-u-mean-after-a-number

Interrupt
TCON: Timer Control
Edge/Level triggered interrupt 두 방법의 차이
Edge Trigger 는 rising 혹은 falling edge 가 발생할 때 interrupt 가 발생되는 것
Level Trigger 는 특정 Level이 될 때 interrupt 가 발생되는 것

참조: https://electronics.stackexchange.com/questions/21886/what-does-edge-triggered-and-level-triggered-mean

IT01CF: INT0/INT1 Configuration
IT01CF = 0x0E -> (00001110)
IN0PL: 1 => INT0 Polarity, 1: INT0 input is active high
IN0SL:  INT0 Port Pin Selection Bits
IN0SL[2:0]:110 =>  110: Select P1.6

Timer
When the 8-bit count overflows, the output signal is asserted. The output signal may thereby trigger an interrupt at the processor or set a bit that the processor can read. To restart the timer, software reloads the count register with the same or a different initial value.
참조: http://www.embedded.com/electronics-blogs/beginner-s-corner/4024440/Introduction-to-Counter-Timers


vector
http://www.keil.com/forum/6306/
https://en.wikipedia.org/wiki/Interrupt_vector_table

SFR
Special Function Register:
SFR Page: pages when reading or modifying SFRs.
SFR Page[7:0] = 00001111 (control_page)
SFR Page[7:0] = 00000000 (active_page)


PCA (Programmable Counter Array)
PCA 주요특징.
• 16-bit time base.
• Programmable clock divisor and clock source selection.
• Up to three independently-configurable channels
• 8, 9, 10, 11 and 16-bit PWM modes (edge-aligned operation).
• Frequency output mode.
• Capture on rising, falling or any edge.
• Compare function for arbitrary waveform generation.
• Software timer (internal compare) mode.
• Integrated watchdog timer.
참조: http://igotit.tistory.com/296


Push-Pull/Open Drain 출력 설정
This answer is general to processors and peripherals, and has an SRAM specific comment at the end, which is probably pertinent to your specific RAM and CPU.

Output pins can be driven in three different modes:

• open drain - a transistor connects to low and nothing else
• open drain, with pull-up - a transistor connects to low, and a resistor connects to high
• push-pull - a transistor connects to high, and a transistor connects to low (only one is operated at a time)
• Input pins can be a gate input with a:

• pull-up - a resistor connected to high
• pull-down - a resistor connected to low
• pull-up and pull-down - both a resistor connected to high and a resistor connected to low (only useful in rare cases).
참조: https://electronics.stackexchange.com/questions/28091/push-pull-open-drain-pull-up-pull-down

crossbar
참조: https://www.reddit.com/r/AskElectronics/comments/1ggdd6/what_is_the_crossbar_in_a_microcontroller_and_how/


ASCII
0x0d : carriage return (\r)
0x0a : new line ( \n)


SBIT
SFR 에 개별적으로 접근하기 위한 방법

SBIT (TI0, SFR_SCON0, 1);              // UART0 TX Interrupt Flag
SBIT (RI0, SFR_SCON0, 0);              // UART0 RX Interrupt Flag

참조: http://www.fsinc.com/reference/html/com9agk.htm


Pin Configuration
핀 구성을 도와주는 프로그램이 들어 있다.
그 툴로 셋팅을 하면 Register를 셋팅하는 코드가 나오니 그 코드를 사용하면 된다.
Config2.exe

2017년 3월 12일 일요일

CANoe 회사 Vector Informatik 의 Youtube 동영상 분류


실무에 깁숙히 들어가기 전에 분류를 하고싶은 생각이 들어 분류해 보았습니다.
자신만의 방식이 있겠죠... 긍정적으로 꾸준히..

포스트 작성 계기
1. CANoe 를 사용하게 되어 기존 만들어져 있는 Simulation 환경을 사용하던 중 더 자세하게 알고 싶다고 생각

2. CANoe Simulation의 내부에서는 Node 를 사용하며 그 내부에서는 CAPL 코드를 사용하고 있음을 발견

3. CAPL 을 익히기 위하여 Youtube를 검색하던 중 "CAPL Basics -- Three Examples" 이라는 동영상(Link) 발견(CANoe 회사인 Vector Informatik 제작)

4. 내용이 유익하여 그 Youtube 채널 "Vector Group" 의 다른 내용을 확인해 보던 중 가장 인기있는 동영상이 가장 유익할 것이라고 생각하여 분류

 Vector 동영상 우선순위
시간
Youtube 동영상 제목
점수(가중치)
조회수
 4:05
CAPL Basics -- Three Examples
37392.6
53418
 6:07
CANoe 9.0 - Highlights of the new version
11546.0
5773
 6:41
New Panel Designer Controls in CANoe/CANalyzer 7.5
8708.7
12441
 4:57
Highlights of CANoe Version 8.1
6993.6
8742
 3:36
CANoe and CANalyzer New Trace Window - Overview
6430.9
9187
 0:31
CANoe Drag and Drop
5761.7
8231
 5:55
CANoe.DiVa: Fully-automated diagnostic validation
5629.6
7037
 4:51
CANoe 8.5: Highlights of the new version
5194.0
5194
 7:25
Efficient functional testing of ECUs with the VT System and CANoe
4999.4
7142
 6:14
Integrating Simulink models in CANoe's simulation environment
4700.8
5876
 4:03
CANoe and CANalyzer Visual Sequenzer
4683.0
6690
 3:31
Offline analysis with CANoe.XCP
3722.0
3722
 5:52
HIL tests with the VT System and CANoe (English Subtitles)
3556.0
3556
 2:15
CANoe Symbol Panel
3185.0
4550
 0:31
CANoe Graphics Window
2926.0
4180
 5:46
Generating a J1939-82 compliance test conveniently with CANoe.J1939
2828.8
3536
 4:55
CANoe 8.0 Highlights
2611.0
3730
 6:13
CANoe and CarMaker - Connect Both Tools with FMI
2486.2
2279
 3:02
CANoe and CANalyzer New Trace Buffer
2403.1
3433
 3:13
CANoe and CANalyzer New Trace Filter
2320.5
3315
 6:42
CANoe State Tracker Window
1751.4
2502
 27:57
Mastering Service-Oriented Architecture with CANoes Function Bus
1560.0
130
 4:11
CANoe.DiVa - Use the Service View to improve the test depth
1507.2
628
 5:33
CANoe Graphics Window
1274.2
1168
 5:15
CANoe: New Features in Version 7.6
1236.9
1767
 2:38
CANoe Drag and Drop
1133.5
1039
 7:40
CANoe.DiVa Report Analysis: Comment and Structure the Test Results
1080.0
180
 7:46
CANoe.DiVa-Use System Conditions to test in the required operation mode
1000.8
417
 34:47
The CANoe.Ethernet Solution - Use in Practice
996.0
83
 4:37
CANoe.DiVa Report Analysis: Exchange and Archive Test Results
486.0
81
 2:44
AnalyzingAndReproducing of AVBdatastreams withthehelpofCANoe(English Subtitles)
345.6
144
 4:13
CANoe.DiVa Report Analysis: Use Filters to Speed up Test Analysis
342.0
57