필요에 의해서 이번에 3D 프린터를 구매하였습니다.

Amazon에서 판매량 1위를 달리는 놈이죠?..ㅎ

중국에서 개발한 제품이긴 하지만..어쨌든 총4개의 모델에서 한국에서는 3개의 모델을 판매중입니다.



제가 구매한건 위에 저놈과 같은 모델이지만 Dual 노즐이아니라 Single로 구매했습니다. ㅎㅎ

DUal 노즐과의 차이는 두가지의 서로다른 필라멘트를 쓸수있고 없고의 차이입니다!

물론 Single을 구매하시면 귀찮게  중간에 필라멘트를 교체하지 않아도 되며, 수용성 필라멘트를 사용하여 좀더 퀼리티가 있는 제품을 생산하실수도 있습니다.

(실제 프린팅의 재료로써 3D프린터는 이를 가열하여 분사합니다. 예를들면 ABS와 같은 강도가 높은 재료가 존재합니다) 





저는 주문하고 하루만에 왔습니다..ㅎㅎ 한국 택배사의 스피드란...가끔 깜짝 놀랄때가 많습니다.

조립은 무지하게 심플하고 간단합니다.


User Guide = http://media.wix.com/ugd/6f131f_52470a9b90fa4420889b739c3565b856.pdf


위의 메뉴얼을 따라서 조립하셔도 되며, 그냥 아래의 사진들만 대충보시면서..건담 만들듯이 순서대로 몇개 나사만 꽂아주시면 끝납니다 ㅎ


구성품은 본체 + 여분의 나사들(아주 많이 줍니다 ㄷㄷ) + 메모리카드 + 필라멘트 + USB 케이블 입니다.

실제 조립에서 사용되는것은 나사 2개, 노즐1개가 전부입니다 ㅎㅎ



조심스레 쌓여 있는 뽁뽁이 님들을 벗겨내고 안전을 위해 박아놓은 상자들을 분리시킵니다.

프린팅판 (사진의 노란색 판) 은 손으로 살살 미셔도 내려가며, "상표 CREATOR" 뒤의 

스크류 기둥을 직접 돌리셔도 움질일수 있습니다. 


** 참고로 저 노란색 프린팅판의 필름은 절대 벗겨 내시면 안됩니다. **

요로콤 프린팅 헤더를 위로 올려주시고 아래의 나사를 이제 박아줍니다.



나사를 꽂아야 하는 위치는 위의 사진속 빨간 동그라미 2곳입니다!

드라이버도 렌치도 제품과 함께 동봉되어 오기때문에 필요한 공구는 없습니다!ㅎ


 


이제 조립이 거의 끝났습니다 (?) 솔직히 정말 별것 없네요..

필라멘트 걸이를 달아주면 끝!


흰색 ABS 필라멘트는 그림과 같이 삽입하시면 되는데, 어짜피 프린팅 헤더가

충분히 달아올랐을때 꽂으면 쏘~옥 들어가기 때문에~ 미리 꽂을 필요는 없습니다!

첫 시동때는 예열후 꽂으시기 바랍니다.

(꼭 글루건 예열후 실리콘이 나오는것과 같은 원리 입니다^^:)


이제 모두 완성되었네요! 시험가동을 위해서 기본적으로 제공하는 샘플을 

만들어 보았습니다.


먼저 제품과의 분리를 용이하게 도와주기위한 밑판을 제작합니다.

그물 모양이네요 ㅎㅎ



모두 완성된 2x2 사각 상자입니다! 

별의미가 없네요..그래서...


강도가 어는정도인가 해서 망치로 쳐보았습니다.. 끄덕도 안하네요..

그래서..성인남자의 몸무게로 올라가보았습니다 -.-;;..

이상없네요..마음에 드는 강도입니다..





소프트웨어의 설치는 아래의 주소에 가셔서 순서대로 설치후 사용하시면 됩니다.

http://www.ff3dp.com/#!sup/c1df1


    Step 1: Download the following softwares;

    Step 2: Decompress the Replicator G files, find the .exe format of it and then send 

                    a shortcut of it to the desktop.

    Step 3: Install the python installation file and python acceleration components;

    

              1). Python-2.6.6 [14 MB]​​​​​​​​​​​​​​​​​​​​​​​​​​

              2). Psyco-1.6.win32-py25 [144 KB]

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​              3). Replicator G [66.1 MB]


1)~3) 까지 순서대로 설치하시면 됩니다. 3)의 실행파일은 무설치버전의 그냥 실행파일이기에 exe파일을 더블클릭만 하셔도 됩니다. 윈도우7에서도 잘 동작합니다.



802.15.4를 이해하기위해서 반드시 이해를 해야하는 프리미티브 개념이다.


802.2-1998 표준문서를 참조하면 좀더 자세히 알수가 있다.


보통 통신프로토콜은 계층화되어 하위나 상위계층에서 어떤 정보의 흐름을 만들거나 전달하기위해서는 서비스함수를 거치게 된다. 특히, 오늘 이야기하려는 지그비의 경우 서비스함수(프리미티브)를 Request, Confirm, Indication, Response 4가지를 가진다.


이들 4가지 서비스는 프로토콜 계층화의 설명에 딱 어울리는 형태로 하위에서 상위로, 상위에서 하위로 일련의 동작을 하도록 명령을 하거나 지시받는 서비스로 아래의 그림에 나타나 있다. (수식으로 넣어서 엉망이다..)




어쨌든 위의 그림을 통해서 우리는 Request, Confirm은 하위에서 - 상위 레이어로, Indication, Response는 상위에서 하위레이어로 동작한다는것을 알수가 있다. 각 프리미티브들은 Layer SAP (Service Access Point)를 통해서 전달되며 특정 레이어에서 요구되는 정보나 파라미터를 전달하거나 제공한다는 개념으로 설명될 수 있다. 

(즉, 주거니 받거니의 의미로 분류할수 있다)


프리미티브는 4가지의 형태로 기술할수있다.


1) Request : 서비스 사용자가 상위 레이어에게 특정 기능호출을 요구함


2) Indication :  호출된 서비스에 대해서 상위 레이어는 이를 지시로 받아들인다


3) Response : 지시받은 서비스 (indication)의 완료를 알리는 응답이다


4) Confirm : 처음 서비스 사용자가 호출한 기능이 모두 완료되었음을 확인한다.


I sincerely promise that this paper would be used for purely academic purposes only and not for any commercial applications. this copyright belong to original author.  - from blog owner.


for beginning design of ZigBee system using MC1321X series in FreeScale, first you have to read the  technologies paper below :


각각의 기술문서들은 아래에 정리될것이고, 여기엔 각 문서에대한 간단한 요약을 기술한다.

지극히 개인적으로, 앞으로 진행할 지그비 연구관련에 있어서 후에 참고용으로 보기위해서 작성할 예정이다. 


프리스케일은 반도체 전문업체로써 주로  마이크로컨트롤러, 무선플랫폼, 메모리 등의 제품을 취급하며, 

이번 프로젝트에서 사용할 Zigbee 개발 및 평가 kit인 MC1321X를 공부하기 위해서 관심을 가지게 되었다.


최종목표는 BeeKit software를 통한 Zigbee MAC layer customized 이며, 이를 통하여 현재 연구중인 논문의

Implementation part를 진행할 것이다. 


http://www.freescale.co.kr/





1. Document Number: 13213EVKUG    "13213 Evaluation Kits User’s Guide"


this paper includes 13213 Kits Board Overview, Evaluation Kit Demonstration Application and Solution Development.

보드의 구성과 하드웨어 스펙, 그리고 구성품에 대한 대략적인 소개, 구현 어플리케이션 소개, 솔루션개발에 대한 정보를 제공한다.


13213 Evaluation Kits_User_Guide.pdf



1) Hardware Design and Layout

Before users begin their hardware design and layout, Freescale provides and recommends reading the documents shown in Hardware Design and Layout Recommended Reading. These documents contain reference design information and hardware design guidelines. In addition, a complete reference design package can be provided upon request.


몇종류의 MCU를 써본 결과 MCU는 결국 다 똑같다. 후에  아래의 Datasheet만 보고 사용할 기능이 포함된 Part만 검색하자. 기능적인 어플리케이션만 구현하고, H/W를 새로 디자인 할것이 아니라면 굳이 상세히 보지 않아도 된다. 



2) Software Applications Development

When building applications for the MC13213 transceiver, Freescale recommends using the CodeWarrior Software Development Tools. A trial version is shipped with the BeeKit CD. In addition, Freescale provides and recommends reading the documents shown in Software Applications Recommended Reading. Most notably, Freescale recommends reading the documentation that describes the Embedded Bootloader implementation and the Non-volatile Memory (NVM) area used for storing information in the application.


각 레퍼런스 메뉴얼은 MCU를 사용하기 위한 실질적인 레지스터사용법과 펑션사용에 대한 정보가 들어있다.


3) 802.15.4 Specific Applications

Freescale provides and recommends reading the documents shown in 802.15.4 Specific Applications

Recommended Reading. This documentation helps guide users through development of an application that

sits on top of the 802.15.4 MAC.


802154MSNUG,802154MWAUG 은 802.15.4 MAC application을 사용하기 위한 기초적인 데모와 코드에 대한 대략적인 설명을 포함하는 문서이다. 


4) ZigBee Applications

For development of ZigBee applications, refer to the appropriate Freescale BeeStack documentation.





2. Document Number: MC1321xEVKRM    "MC1321x Evaluation Kit (EVK) Reference Manual" 


MC1321xEVKRM.pdf



앞전 문서의 내용을 좀더 자세하게 설명한 paper이다.

문서의 구성은 아래와 같다.


Chapter 1 Safety Information — This chapter describes the safety guidelines for the MC1321xEVK.

Chapter 2 System Overview — This chapter introduces the basic components, functionality, and power supply options of the MC1321xEVK boards.

Chapter 3 RF Front End — This chapter provides a description of the external analog circuitry required to ensure proper MC1321x operation.

Chapter 4 MC1321xEVK Interfaces and Board Layout — This chapter briefly describes the available interfaces between the EVBs and a personal computer (PC) and provides schematics and component and board layout information.


주로 하드웨어 스펙에 대한 내용이 주된 내용이다.




3. Document Number: CWS-H08-QS     "CodeWarrior™ Development Studio for Freescale™ HC(S)08/RS08 Microcontrollers Quick Start" 



CWS-H08-QS.pdf



프리스케일사의 제품에 주입하는 프로그램 작성 프로그램이다. 코드워리어이며 프리웨어 버전이 존재한다. 하지만 30일 제한이 걸려있기 때문에 인스톨/제거를 반복해야하는 단점이 있다. 옛날의 코드길이 제한성의 프리웨어는 이제 보이지 않는다.

문서의 내용구성은 아래와 같다. 차근차근 코드워리어로 간단한 프로젝트 생성에서 부터 프로그램 주입까지 알려주는 튜토리얼이다.


Section A: Installing CodeWarrior Software

Section B: Creating And Building A Project

Section C: Debugging Your Application

Appendix A: Registering and Obtaining License Key for  Standard Edition or Professional Edition

Appendix B: Manually Installing License Key




4. Document Number: ZAUG     "Freescale ZigBee™ Application User’s Guide"



Freescale ZigBee™ Application.pdf



말그래도 지그비 어플리케이션에 대해서 소개하는 문서이다. 2가지형태의 Beekit 기본적인 examples 를 다룬다.

 1) HALighting solution

 2) Wireless UART solution 

                              의 데모 프로젝트의 설정과 실행에 대해서 간략히 설명한다. 문서의 구성은 아래와 같다.


Chapter 1 Introduction – introduces the Freescale implementation of ZigBee wireless sensor networks.

Chapter 2 Freescale Development Boards – provides detailed installation and device configuration information using the Freescale BeeKit Wireless Connectivity Toolkit tools.

Chapter 3 BeeKit and CodeWarrior – provides a simple home lighting control network to introduce users to simple ZigBee applications.  : 1) 어플리케이션

Chapter 4 Starting and Running a Simple ZigBee Network – provides a quick tutorial to form a Zig-Bee network using code built and loaded into two development boards in previous chapters.

Chapter 5 Creating a Wireless UART Application - shows how to create a Freescale Wireless UART application using the Freescale BeeKit Wireless Connectivity Toolkit.   :2) 어플리케이션

Chapter 6 Example Applications – provides several examples to allow users to configure and run ZigBee wireless home control applications.




5. Document Number: BKWCTKUG      "BeeKit Wireless Connectivity Toolkit User’s Guide"



BeeKit Wireless Connectivity Toolkit User’ Guide.pdf



This document is intended for ZigBee, 802.15.4 and custom software and application developers.

Beekit는 802.15.4 MAC을 Customized 할수있는 소프트웨어이다.그리고 this paper 는 Beekit를 위한 유저 가이드이다.

자세히 천천히 읽어서 모두 숙지하도록 하자. 매우 유용하다.

문서의 구성은 아래를 따른다.

Actually, The Freescale divide the type of ZigBee MAC layer protocl as the common MAC(802.15.4 ), SMAC, BeeStack(which consist of ZigBee 2006/2007/RF4CE).

If you want to make the Zigbee network, you first consider what you will use about MAC. 


Chapter 1 Introduction — This chapter provides an introduction to BeeKit features and guides users through creating a Solution and a adding a Project.

>Beekit 인스톨후 c:\program Files\Freescale\Drivers 의 P&E Diver를 설치해야 된다. -순서 주의.

>Beekit software의 메뉴와 디스플레이 창의 역할과 기능에 대해서 설명한다.

>Creating a Project - Star Network Demo 를 만들어봄으로 설명한다.

Chapter 2 File Menu — This chapter describes how to create a new project, open, save, and close solutions, and select a Codebase.

>코드의 Export와 Import에 대해서 다룸 (코드워리어로 MAC을 넘기는 방법)

>Removing / Creating Solution (Codebase)의 방법에 대해서 설명

Chapter 3 Solution Menu — This chapter explains how to Export a Solution, import and export properties, validate and upgrade solutions, add and import projects and adjust properties.

Chapter 4 Project Menu — This chapter details how to validate a project, add and remove software components and remove a project.


즉, 이 문서는 기본적인 Beekit software의 사용법을 위한 Manual이다. Menu는 크게 File, Solution, Project로 나누어 지며 각 2~4 챕터들은 메뉴에 대한 기능들을 기술했다. 




아래는 Beekit에서 제공하는 전체 기술문서에 대한 구조도를 보여준다.

Beekit 실행시 오른쪽 하단 Document 메뉴에 존재하며, 이들 paper들은 매우 유용하다. 



굳이 읽어야 할 문서들에 대한 순서를 매기자면,

위에서 1.~ 5.에 따라 차례대로 기술한 문서들을 읽고나서, 

위 구조도의 Beekit Documentation의 Beekit Quick Start' Guide / User's Guide 를 읽어라.

그리고 802.15.4 Documentation의 3가지 문서들을(802154MPSRM/ 802154MSNAUG/ 802154MWAUG) 읽으면 

기본적으로 CodeWarrior IDE사용법과 Beekit 사용법과 Freescale사에서 제공하는 MAC software 중에 802.15.4 MAC에 대한 설정/사용법/동작원리/응용 에 대한 감이 잡힌다. 


이제 다음 포스팅부터는 802.15.4 Documentation 문서에 대한 내용을 정리하겠다.


*전제 : MCU사용에 대한 기본적인 방법은 안다는 가정하에 이부분에 대해선 따로 기술하지 않았음.*






'Nobody tells you about.. > FreeScale_MC1321X' 카테고리의 다른 글

[Notation] Concept of Primitives  (0) 2014.06.24

http://portal.osek-vdx.org/

 

1. OSEK이란?

 

OSEK(Open Systems and their Interfaces for the Electronics in Motor Vehicles) + VDX(Vehicle Distributed eXecutive)

 

- Initial Partners of OSEK : BMW, BOSCH, SIEMENS VDO, VOLKSWAGEN AG, DAIMLER CHRYSLER...

- VDX Member : Renault, Psa peugeot, citroen

 

::Motivation::
-High, recurring expense in the development and variant management of control unit software
-Incompatibility of control units made by different manufactures due to different interfaces and protocols

 

1-2. Goal

 

: 어플리케이션 SW를 어떻게 하면 이식성높게 만들수 있을까?  SW의 재사용을 어떻게 높일수 있을까?

 

1-3. System philosophy


1) Standardized interface
      : C와 같이 사용가능. System services are specified in an ISO/ANSI-C like syntax


2) Scalability
     : Different conformance classes, various scheduling mechanisms, configuration features


3) Error Checking
     : 개발단계시 에러체크는 Extended status for development phase로, 양산시 standard status for production phase

 

   4) Portability of application software
     : 기본적으로 표준 인터페이스로 개발하기 때문에 어플리케이션의 개발이 매우 쉽다. •A language for a

        OIL(OSEK Implementation Language) 라는 OSEK의 표준문법을 사용함 = Portability


5) Support of Portability
      : Increase portability of an application between various OSEK implementations


6) Support for automotive requirements(reliability, real-time capability and cost sensitivity)
      : Users statically specifies the number of tasks, resources, and alarms
        Predictable and documented behavior

 

1-4. major characters

- Task management  (Apps 을 task unit으로 나눠서 스케줄링한다)
   - Activation/Termination of tasks
   - Management of task states, task switching
   Synchronization
   - Event control
   - Resource management
     Interrupt management
     Alarms
     Intra processor message handling
     Error handing, tracing and debugging
   - OS provides six hook routines

 

 

2. Specification of OSEK OS

 

"  Tree processing levels로 나눠진다. "
  - Interrupt level
  - Logical level for scheduler
  - Task level

 

 

 

 

2-2. Objectives of Conformance classes

  - Provide convenient group of OS features for easier understanding and discussion

   : 구분을 통한 높은 가독성과 개발에 편리
  - Allow partial implementations
  - Create and upgrade path from classes of lesser functionally to classes of higher functionality with no changes   

     to the application

 

 

 

  Task의 분류는 위의 도표와 같이 Basic Task들을 Conformance classes로 나눈다.

  구체적인 내용은 아래의 그림참조.

 

 

 

 

2-3. Task management :  Task들을 나누는 이유는 '모듈화'

 

- Complex control software can be subdivided in parts executed according to their real-time requirements
- A task provide the framework for the execution of functions
- OS provides concurrent and asynchronous execution of tasks

 OSEK에서 제공하는 Two different task concepts
 : Basic Tasks (left), Extended Tasks (right)

   함수같은것.

 

 

 

- Activating a task : System Services,   ActivateTask or ChainTask
                          After activation, the task is ready to execute from the first statement
 - Multiple requesting of task activation
: Basic task only, Records parallel activation of a basic task already activated
 - Task switching mechanism
Scheduler
 - Decides which task shall be started and the triggering of all necessary OSEK OS internal activities
 :The scheduler is activated whenever a task switch is possible

 

 

2-4 Task Priority
The value 0 is defined as the lowest priority of a task (낮은값이 높은 우선순위를 가진다)
Not support the dynamic priority management  (절대적인 우선순위 고정)
     :User cannot change it at the time of execution
A preempted task is considered to be the first(oldest) task in the ready list
A task being released from the waiting state is treated like the last(newest) task

 

  **OSEK규격에서 제공하는 스케줄러의 예시

 

 

 

  수행중인 Task가 있는데 더 high-priority task가 ready가 되면 기존 Task를 대기로 놓되, 대신 다음번에 가장 높은 순위로 실행시켜준다는 내용..

 

-Scheduling policy


***Full preemptive scheduling 방식

 

 


- Rescheduling points
  •Termination of a task : TerminateTask
  •Termination of a task witch explicit activating of a successor task : ChainTask (다음실행할 task지정)

  •Activating a task at task level : Activate Task
  •Explicit wait call : WaitEvent
  •Setting an event to a waiting task : SetEvent
  •Release of resource : ReleaseResource
  •Return from interrupt level to task level

 

--------------------------------------------------------------------------------------------------------

*** Non preemptive scheduling

 

 

 

-Rescheduling points
  •Termination of a task : TerminateTask
  •Termination of a task witch explicit activating of a successor task : ChainTask
  •Explicit call of scheduler : Schedule
  •Explicit wait call : WaitEvent

 

 

3. Synchronization

 

 3-1. Event mechanism
- A means of synchronization
- Only provided for extended tasks
- System services
- SetEvent, WaitEvent, GetEvent, ClearEvent

 

 

 

    : Task2가 런닝상태있다가 Wait Event() 실행이되면 release 상태나 wait 상태로 간다.

 

 3-2. Event mechanism

 

1) Synchronization of preemptable extended tasks

 

 

2) Synchronization of non preemptable extended tasks

 

 

 

 

3-3 Resource management

- Co-ordinate concurrent access of several tasks with different priorities to shard resources
- Shared resources
  : E.g. scheduler, program sequences, memory or hardware
- System services
  : GetResource, ReleaseResource  (2가지의 리소스 호출만 존재함/ 동시획득은 못함, 바이너리 세마포어와 동일한원리)
- Ensures that
  :  * Two tasks cannot occupy the same resource at the same time
   

    * Priority inversion can not occur

 

   -> 우선순위 기반의 스케줄링이라면 위와같은 현상이 일어나지 않지만, 리소스의 공유로 인해 발생한다.


    * Deadlocks do not occur by use of these resources

 

  -> 서로의 리소스충돌로 인한 데드락 상태.  OSEK에서 Ceiling Protocol 사용을 통하여 위와같은 현상을 예방해준다.

 

3-4 Priority Ceiling Protocol

- To avoid the problems of priority inversion and deadlocks
- Behavior of priority ceiling protocol
   • Each resource has own ceiling priority
   • If the task requires a resource, and its current priority is lower that the ceiling priority of the resource, the priority

      of the task is raised to the ceiling priority of the resource
   • If the task release the resource, the priority of this task is reset to the original priority

 

 

  -> 우선순위도치나 데드락을 방지한다.

 

3-5. Interrupt Management

  :  OSEK에선 2가지로 ISR나누어서 사용한다.

 - Two ISR Categories
1) ISR Category 1  : Dose not use an OS System services
2) ISR Category 2 : Can use the OS system service

 

 -Rescheduling
Takes place on termination of the ISR category 2
The number of Interrupt priorities
Depends on the controller and implementation

 

- Alarms  : 반복적으로 발생하는 이벤트를 처리하기 위한 서비스
             Services for processing recurring events
- Counters
: Represented by a counter value 

     •“ticks”, and counter specific constants
- Alarm management
: An alarm will expire when a predefined counter value is reached
  Statically assigned at system generation time to
     •One counter
     •Activates task, sets event or calls alarm-callback routine

 

Example)

 

 

 

 

4. Intra Processor Message Handling

 

-Provided by OSEK COM specification
CCCA, CCCB only
Transmission of data between tasks


-Actions on receiving messages
Generation of an event
Activation of a task
Execution of a callback function

 

 

 

 

 

 

4-2. Hook Routines

: 특정한 상황에서 OS에 의해 호출되는 함수로써, 디버깅이나 모니터링 용도로 사용된다.

OSEK에는 Six hook routines이 존재한다.

   - Functions called by OSEK OS
- Have predefined names
- Enable
        • Reactions to special situation

        : ErrorHook, COMErrorHook
        • Monitoring or debugging services
           : PreTaskHook, PostTaskHook
        • Initialization or finalization by user
        : StartupHook, ShutdownHook

 

 

 

 

 

 

 

 

'Nobody tells you about.. > RTOS' 카테고리의 다른 글

[Embedded Systems] FSM :: Finite-State Machines  (0) 2013.05.17

A few days ago, I learned the notion of FSM in a major class. This means kind of expression tool to show system or any-state, when we want to explain the complicated situation or CS algorithm. This is a contents below in my textbook for easily understanding.


THE ONLY IN DISCRETE DYNAMICS,


1.The Notion of State

: the state of a system is its condition at a particular point in time.


we can define the state to be an encoding of everything about the past that has an effect on the system’s reaction to current or future inputs. The state is a summary of the past.


2.Then, What is a Finite-State Machines??..'제한된 상태들의 변화를 순차적으로 나타내는 장치'

:

A state machine is a model of a system with discrete dynamics that at each reaction

maps valuations of the inputs to valuations of the outputs, where the map may depend on

its current state.

Therefore, A finite-state machine (FSM) is a state machine where the set States of possible states is finite.

 

States = {State1; State2; State3}


3.Transitions


A transition is represented as a curved arrow, as shown in Figure 3.3.



The guard determines whether the transition may be taken on a reaction. The action specifies what outputs are produced on each reaction. In other words, the guard is condition for progressing next step(state) and the action means the an assignment of values (or absent) to the output ports.



EXAMPLE>


The transition is a symbol of arrow to move to next state, and the 'enabled' means can be a next state, when the conditions (such as P1,P2) is satisfied. (present(P) means there is a event at that time.) And also, the present has the meaning of true, the absent is false.

**Pure signal is input which has both a absent and present (event) such as UP,DOWN.


above example, The transition from state 0 to 1 has a guard written as up^:down. This is a predicate that evaluates to true when up is present and down is absent. 

------------------------------------------------------

UP : the event like a "come in 1 vehicle" (present),  DOWN : the event like a "come out 1 vehicle" (present)

if the absent occur, it means there isn't event.


These are standard logical operators where present is taken as a synonym for true and absent as a synonym for false. The symbol : represents logical negation. The operator ^ is logical conjunction (logical AND), and _ is logical disjunction (logical OR).





On a transition, the action (which is the portion after the slash) specifies the resulting valuation on the output ports when a transition is taken. If q1 and q2 are pure outputs and q3 has type N, then the following are examples of valid actions:

 


Any output port that is not mentioned in a transition that is taken is implicitly absent. (1Line)

When assigning a value to an output port, we use the notation name :=value to distinguish the assignment from a predicate, which would be written name = value. As in Figure 3.4, if there is only one output, then the assignment need not mention the port name.


::A default transition that need not be shown explicitly because it returns to the same state and produces no output.


The reaction is not shown explicitly in the diagram. Sometimes it is useful to emphasize such reactions, in which case they can be shown explicitly. A convenient way to do this is using a default transition, shown in Figure 3.6. In that figure, the default transition is denoted with dashed lines and is labeled with “true / ”.












'Nobody tells you about.. > RTOS' 카테고리의 다른 글

[Overview] OSEK  (0) 2013.06.04

9.       Message Types


 OSI7 구조를 아시나요?   트랜스포트 층의 세그먼트 네트워크 층에서는 데이터’  된다. 라는 개념이 CAN처럼 하위 2계층만 쓰는 프로토콜에선 메세지로 불리게 됩니다. 아래는 메세지의 타입입니다.


1)       Data Frame

이전에 이미 언급한 부분이라서 넘어갑니다.


2)       Remote Frame

- Receiver transmitter data 요청할 출력하는 frame

- Arbitration field에는 transmitter ID 포함되며 data field 없는 것이 특징


3)       Error Frame

- Error 상황을 알리기 위한 frame

- Error 감지한 node 6 dominant bit 출력하면 다른 node 이에 반응 (stuff error)하여 6 dominant 

bit 출력

- 6~12 dominant bits (Error Flag) + 8 recessive bits (Error delimiter) 구성

- Superposition(중첩) : Node들이 출력하는 error flag 순서에 따라서 중첩될 있음

- Error Delimiter : Error frame 종료. 8 recessive bit 구성

 

4)       Overload Frame

   - 다음의 상황에서 overload frame 전송 (bus 상태를 안정화하기 위해서)


(1) Receiver 내부 조건에 의해서 다음 data/remote frame 사이에 delay 필요한 경우

(2) Frame 사이의 intermission 1,2 bit dominant bit 경우

(3) Error delimiter 또는 overload delimiter 마지막 bit dominant bit 경우

- 6 dominant bits (Overload Flag) + 8 recessive bits (Overload delimiter) 구성



'Nobody tells you about.. > CAN Bus' 카테고리의 다른 글

CAN통신의 기초-4  (1) 2013.04.24
CAN통신의 기초-3  (0) 2013.04.23
CAN통신의 기초-2  (0) 2013.04.18
CAN통신의 기초-1  (2) 2013.04.16

7.      The principle of CAN protocol  

 

CAN버스에서는 각각의 노드(ECU) CAN 버스에 흘러 다니는 데이터를 읽거나 쓰기 위해 액세스(access)할 때 전체 노드를 제어하는 마스터(master)가 없습니다. 따라서, 각 노드에서 데이터를 전송할 준비가 되면, 먼저 전송 준비가 되었는지를 버스에 확인하고 그 후 CAN 프레임을 네트워크에 전송하는데, 전송되는 CAN 프레임은 전송이나 수신 노드 중 어느 노드의 주소도 포함하고 있지 않으며, 대신, 고유한 ID를 통해 프레임을 분류하여 데이터를 인식하게 됩니다.

각 노드들이 동시에 메시지를 CAN 버스로 전송하려는 경우 최우선 순위를 가진 노드 (가장 낮은 중재 ID)가 자동적으로 버스에 액세스된다. (낮을수록 우선순위가 높은방식)

 

예를들어, CAN 통신을 통해 데이터를 액세스하는 과정은 아래와 같습니다.

 

① 먼저 CAN 버스라인이 사용 중인지를 확인한다.

CAN 버스라인이 사용 중이 아니면, CAN 네트워크상의 모든 노드(ECU)는 메시지를 수신하여 자신에게 필요한 메시지인지식별자를 통해 확인한다.

③ 자신에게 필요한 메시지일 경우 입력받아 데이터를 분석하게 되고, 불필요 한 메시지는 무시하게 된다.

④ 여러 노드의 데이터가 동시에 자신의 노드로 유입되는 경우에, 식별자의 숫자를 비교하여 먼저 취할 메시지의 우선순위를 정한다. 식별자의 숫자가 낮은 경우가 우선순위가 가장 높다.

⑤ 각각의 CAN 메시지는 11비트의 식별자(CAN 2.0A) 또는 29비트의 식별자 (CAN 2.0B)를 가지며 CAN 메시지의 맨 처음 시작부분에 위치한다.

CAN 프레임의 식별자(ID)는 메시지의 내용을 식별시켜 주는 역할과 메시지 의 우선순위를 부여하는 역할을 한다.

⑦ 각 노드로부터 출력되는 데이터 메시지는 송신측이나 수신측의 주소를 가지 고 있지 않다. 대신 각 노드(ECU)를 식별할 수 있도록 각 노드마다 고유한 식별자를 가지고 있다.


8.      The arbitration of a Can Message


->결론적으로 말해서 CAN통신은 I^2C통신과 동일한 버스구조와 중재구조를 가집니다. 중재

가 필요한 이유는 CAN과 같은 동기식 통신에서 같은 시간 Time에 다른 메세지가 버스를 사용

할경우 충돌이 일어나게되는데 이를 해결하기위한 방법이 필요하기 때문이다.




CAN의 주요한 기능 중 하나인 중재는 11Bit 또는 18Bit Identifier(식별자)가 존재하기 때문에 가능한 기능입니다아래의 그림에서 보이는 CAN의 기본특성은 버스와 드라이버 입력 및 수신기의 출력간이 반대 로직 이라는 특성입니다. 보통의 버스에서 High신호는 1에 가깝고 Low신호는 0에 가깝지만 CAN버스 반대입니다.  


일단 CAN버스의 액세스는 event-driven형태이며 만약, 2개의 노드가 버스를 동시에 차지 할 경우, 액세

스의 형태는 중재(nondestructive, bit-wise arbitration)가 구현된다. Nondestructive의 의미는 중재의

형태가 메시지로 지속된다는 것을 의미한다. 이 말은 충돌이 일어났을 때 메시지는 다른 노드에 의해서

훼손되지 않으며, 오류를 발생시키지도 않는다는 것을 의미한다.

앞서 말했듯이, CAN의 특징 중 식별자에서 메시지의 우선 순위를 배치하는 특징이 존재한다고 하였다

이점이 바로 CAN을 실시간 제어 환경으로 만들어주며 우선적인 특정 이벤트를 먼저 실행시키는 기능을 

한다. 2진법 메시지 식별자 숫자가 더 낮을수록 우선순위는 더 높으며 만약 제로로 구성된 식별자는 네트

워크 상에서 가장 우선 순위의 메시지이다. 버스 도미넌트가 가장 긴 것을 가지고 있기 때문이다.

 

따라서 2개의 노드가 동시에 전송을 시작하면, 이 노드는 0(도미넌트: dominant)으로 전송하는 반면,

른 노드는 1(리세시브: recessive)로 전송해, CAN 버스를 제어하고 완벽한 메시지를 전송한다. 도미넌트 

비트는 CAN 버스에서 리세시브 비트에 겹쳐 쓴다.




[CAN BUS LOGIC]

위 그림은 중재의 과정을 보여준다. 그림에서 하나의 노드라도 우성(Dominant)상태, Zero이게 되면

버스의 상태는 우성이 됩니다. 또한 어느 노드 하나라도 우성이 아니게 되면 그 버스의 상태는 열성 (recessive)상태 즉, one이 됩니다. 한마디로 해석하자면 CAN 버스 상에서는 우성비트는  열성비트를 무시하게 되는 것입니다. 따라서 버스의 상태가 우성이냐 열성이냐에 따라 데이터 전송을 제어할 수 있는 것입니다.

CAN 프로토콜은 "Carrier Sence Multiple Access With Collision Detection" 따라 버스 Access를 처리합니다. 만약 충돌이 발생하여도 메세지들은 결코 파괴되는 일이 발생하지 않고 충돌로 인해 낭비되는 대역폭도 생기지 않습니다. 이점으로 Ethernet과 달리 CAN에서는 충돌이 해결되는 부분이 되고 더 높은 우선순위를 가진 메시지가 버스에 접근할 수 있게 되는 것입니다. 그래서 각각의 노드들은 식별자를 가지고 있는 것입니다.

 


아래의 그림으로 CAN의 중재에 대해서 다시 설명한다면


먼저 제일 윗 줄에 있는 노드1, 그 밑에 있는 노드 2와 노드 3가 동시에 버스를 차지하기 위한 요청이 발생하였을 경우에 먼저 Start Of Frame을 시작으로하는데 이 부분은 무조건 우성으로 설정되 있어야 데이터 전송에 문제가 없을 것입니다. 다음에 나오는 것이 중재 필드 부분으로 데이터 프레임에 작성되어있습니다. 그림에서 왼쪽 갈색선이 첫번째 중재하는 영역으로 노드1과 노드3가 중재에서 승리하고 노드2는 열성비트로 인해 우선순위에서 최하위로 밀려나게 되고 다음 오른쪽 갈색선에서는 노드1과 노드2가 중재를 받게 되는데 여기서 노드1이 우성비트를 가지고 있으므로 우선순위 1위가 되어 제일 먼저 버스를 차지하게 되는 것입니다. 그 다음 노드2가 전송되고 마지막으로 대기상태였던 노드3이 전송되는 것이다. 비교적 간단한 개념이지만 이것으로 인해 CAN 통신의 신뢰성은 많이 향상될 수 있습니다.



이번에는 TI사에서 제공하는 report 있는 그림으로 보겠습니다.

 

그림 5는 중재(arbitration) 과정을 보여줍니다. 노드가 지속적으로 자체 전송을 감시하기 때문에, 노드 B's recessive bit 노드 C의 더 높은 우선 순위인 dominant bit 겹쳐 쓰이는 경우, B는 버스 상태가 전송된 비트와 맞지 않는다는 것을 검출합니다. 따라서 노드 B는 전송을 중지시키는 동안, 노드 C는 메시지를 가지고 지속됩니다. 그리고 후에 버스가 노드 C에 의해 released 되면, 이전에 전송을 중지한 노드 B의 전송도 이루어집니다. 이 기능은 ISO 11898 물리 신호 계층의 일부로, CAN 컨트롤러 내에 포함되어 CAN 사용자들이 필수적으로 알아야합니다.




'Nobody tells you about.. > CAN Bus' 카테고리의 다른 글

CAN통신의 기초-5  (0) 2013.04.25
CAN통신의 기초-3  (0) 2013.04.23
CAN통신의 기초-2  (0) 2013.04.18
CAN통신의 기초-1  (2) 2013.04.16

1.       Data Link Layer

 

앞서 CAN 통신은 통신 프로토콜인 ISO 11898을 따르며, 이는 네트워크상의 디바이스들 간에 정보가 어떻게 교류될 수 있는지를 기술하며, 계층(Layer) 관점에서 정의된 OSI(Open Systems Interconnection) 모델을 따릅니다. 구체적으로 말한다면, 주로 물리적 계층에서 만든 0,1의 두가지 신호를 실질적으로 데이터로 만드는 encoding, 인코딩해서 만들어진 데이터를 가지고 프레임을 형성하는 framing, 오류발생을 막기위한 error detection, 각 포인트와 포인트간에 속도차를 극복하기 위해서 흐름을 제어하는 flow control등의 역할을 수행합니다.


표준 CAN과 확장 CAN

CAN 통신 프로토콜은 CSMA/CD+AMP(Carrier-Sense Multiple-Access protocol with Collision Detection and Arbitration on Message Priority) 방식이다. CSMA는 버스의 각 노드가 메시지 전송을 시도하기 전, 비활성의 규정 기간을 기다려야 한다. CD+AMP는 충돌이 메시지 식별 필드에서 프로그램된 각 메시지의 우선 순위에 기반해 비트 와이즈 중재(Bit-wise Arbitration)를 통해 해결된다는 것을 의미한다. 더 높은 우선순위의 식별자가 항상 버스에 액세스 된다.

1에 나타난 표준 CAN의 최초 버전, ISO 11519(저속 CAN)는 표준 11비트 식별자를 갖춘 최고 125kbps의 애플리케이션을 위한 것이다. 2차 버전, ISO 11898(1993) 역시 11비트 식별자를 이용해 125kbps에서 1Mbps까지 신호 속도를 제공한다. 가장 최근의 ISO 11898 개정 버전(1995)은 확장 29비트 식별자를 도입했다. ISO 11898 11비트 버전은 표준 CAN 버전 2.0A으로도 종종 불리며, ISO 11898 개정 버전은 확장 CAN 버전 2.0B로 불린다. 그림 2에서 표준 CAN 11비트 식별자 필드는 211 , 2048개의 다른 메시지 식별자를 제공하면서, 그림 3에서 확장 CAN 29비트 식별자는 229 5 3,700만 개의 식별자를 제공한다.

 

▶ 통신 방법의 개요

1) 각각의 Message는 자신의 고유 ID를 갖는다 (ID의 크기 : CAN 2.0A = 11bit, CAN 2.0B = 29bit  - 확장형 )

2) 모든 node bus idle 상태에서 데이터 전송가능 (multi master)

3) Message 충돌의 중재 ID를 통하여 우선 순위 결정

4) 수신 node message ID check 하여 무시 또는 저장

5) 수신 node message 수신 후 acknowledge 신호를 발생

6) Message format error를 판단하면 bus error 신호를 발생

 

Message frame의 구성

1) Frame: 하나의 message를 이루는 field 또는 bit들의 집합

2) Data frame : 일반적으로 전송되는 데이터 message

3) Remote frame : 특정한 ID data frame 전송을 요청

4) Error frame : Error를 판단한 node가 전송하는 message

5) Overload frame : Data frame 사이에 delay가 필요한 경우 전송하는 frame

 

[아래의 그림은 Data frame 나타냅니다] :: CAN 2.0A

 


* SOF- 단일 도미넌트(dominant) SOF(start of frame) 주요한 (logic 0) 비트로 메시지의 시작을 표시합니다.

또한 무부하 기간 이후 버스의 노드를 동기화하기 위해 사용된다.
*
식별자(Identifier) - 메시지를 식별하고 메시지의 우선 순위를 지정합니다. 프레임에는 11 비트 중재 ID를 사용하는 표준 및 29 비트 중재

ID를 사용하는 확장의 두 가지 포맷이 있습니다. 2진 값이 더욱 낮을수록 우선순위는 더욱 높아진다.
* RTR -
단일 원격 전송 요청(RTR: remote transmission request) 비트는 리모트 프레임과 데이터 프레임을 구별하는 역할을 합니다.

주요한 (logic 0) RTR 비트는 데이터 프레임을 나타냅니다. 열성 (logic 1) RTR 비트는 리모트 프레임을 나타냅니다.

* IDE- 도미넌트 싱글 IDE(identifier extension) 표준과 확장 프레임을 구분합니다

* r0- 역 비트 (추후 표준 개정으로 사용 가능)
*
DLC- 4비트 DLC(data length code)는 데이터 필드의 바이트의 수를 나타냅니다

(IDE ~ R0 , DLC Control field (6bits) 를 의미한다)

* 데이터 - 애플리케이션 데이터의 최고 64비트가 전송될 수 있다.
* CRC- 16
비트(15비트+구획문자)의 순환 중복 확인 CRC(cyclic redundancy check)

15 비트의 주기적인 중복 체크 코드 + 리세시브 delimiter 비트로 구성됩니다. CRC 필드는 오류 검출에 사용됩니다.
* ACK-
메시지를 정확하게 수신한 모든 CAN 컨트롤러는 메시지의 말미에 ACK 비트를 전송합니다. 전송 노드는 버스 상에 ACK 비트 유무를 확인하고, ACK가 발견되지 않을 경우 전송을 재시도합니다. NI Series 2 CAN 인터페이스에는 수신 전용 모드 기능이 있습니다. 이 때문에, 모니터링 하드웨어에 의한 ACK 비트의 전송이 금지되어 버스의 작동에 영향을 주지 않게 됩니다. ACK 2비트이며 이 중 1비트는 승인 비트, 2번째 비트는 구획문자이다.
* EOF-
프레임 종료 (EOF) 7비트 필드는 CAN 프레임(메시지)의 종료를 나타내고, 비트 스터핑(bit-stuffing)을 억제시키며, 도미넌트 일 때

스터핑 오류를 가리킨다. 동일한 로직 레벨의 5비트가 정상 동작기간 동안 연속적으로 발생할 때, 반대 로직 레벨의 비트는 데이터로

스터프 된다.
* IFS- 7
비트의 IFS(inter-frame space)는 컨트롤러가 요구하는 시간의 양을 포함하며, 메시지 버퍼 영역에서 적절한 위치로 정확하게 수신된

프레임을 이동시킨다.






확장 CAN (Data frame) :: CAN 2.0B

 

그림 3에서처럼, 확장 CAN 메시지는 다음과 같은 내용이 추가되어 표준 메시지로 동일하다.

* SRR-SRR(substitute remote request) 비트는 표준 메시지 위치에서 RTR 비트를 대신해 확장 포맷에서 플레이스홀더(placeholder)가 된다.

* IDE-IDE(identifier extension)에서 리세시브 비트는 따라야 할 더욱 많은 식별자 비트가 있다는 것을 나타낸다. 18비트 확장은 IDE를 따른다.

* r1-RTR r0 비트를 따르는 추가적인 리세시브 비트는 DLC 비트에 앞서 포함된다.



'Nobody tells you about.. > CAN Bus' 카테고리의 다른 글

CAN통신의 기초-5  (0) 2013.04.25
CAN통신의 기초-4  (1) 2013.04.24
CAN통신의 기초-2  (0) 2013.04.18
CAN통신의 기초-1  (2) 2013.04.16

5. Physical Layer


CAN통신은 통신포트를 RS485 방식처럼 병렬로 접속합니다.

통신선 말단에는 임피던스매칭을 위해서 단말 저항을 접속합니다.

라인이 임피던스매칭이 반사에의해 안되면 오류가 많이 발생됩니다.

 


케이블과 커넥터

- CAN 은 물리적 매체들을 지정하지는 않지만 특정 커넥터와 와이어들을 권장함

- 와이어는 차폐된 꼬임 전선을 권장하며, 선택적 파워가 필요한 경우, 추가적인 한쌍의 꼬임 전선

  (한 쌍의차폐된 꼬임 전선”)이 필요하다.

- 커넥터의 종류는 9-pin Dsub, 5-pin mini style, 개방형 스타일



RS485                                                추가 관련내용 : http://ezcircuits.net/zbxe/18002

RS 232, RS 422의 확장 버전으로,  네트워크를 지원하는 일종의 시리얼 통신 프로토콜 표준 규격. 전송 속도가 늦고 전송 거리가 짧은 RS 232를 보완하기 위해 RS 422 통신 방식을 채택하였다. 이것은 1개의 마스터 장치와 슬레이브 장치 간에 데이터를 주고받는 방식으로 통신하는 반면, RS 485는 모든 장치들이 같은 라인에서 데이터 전송 및 수신을 할 수 있다. 반이중 방식과 전 이중 통신 방식을 모두 지원한다. 또한 RS 485는 최대 드라이버·리시버 수가 각각 32개에 이르고, 최대 속도 10Mbps에 최장 거리 1.2km까지 네트워크 구축이 가능하다. //

 

RS485는 소프트웨어적인 특성에 대한 용어가 아니고 하드웨어적인 특성을 구분짓는 용어입니다우리가 serial통신에서 익히 알고 자주 사용하는 것은 RS232C입니다이는 inactive 상태가 -12V, active 상태가 +12V의 신호를 이용하여 RXD신호와 TXD신호를 서로 교차하여 통신이 이루어 질수 있도록 하는 규격입니다

마찬가지로 RS422(평형 전송), RS423(불평형 전송), RS485(평형 전송)도 나타내는 규격인 것 입니다평형 전송이라 함은 하나의 신호를 두가닥의 신호선을 이용하여 서로 역상의 신호를 실어 보내는 방법 입니다. 그러므로 양단의 장비간의 GND는 공통이 아니어도 전송이 가능함다. 불평형 전송에 사용되는 RS423 의 경우에는 양단 장비간의 GND가 공통이 되어야 함다

 

 

RS485의 장점은 다음과 같습니다.


1. Multi-drop이 가능하다.(1:N 통신)


   여러대의 RS485장비를 하나의 포트(노드)에 병렬로 계속 연결할수 있습니다.


   RS485 converter IC 종류에 따라 다르지만 10 ~ 32개 정도의 장비를 하나의 포트에 연결 할 수 있습니다.


multi-drop :

A multi-drop bus (MDB) is a computer bus in which all components are connected to the same set of electrical wires. A process of arbitration determines which device gets the right to be the sender of information at any point in time. The other devices must listen for the data that is intended to be received by them.

멀티 드롭 버스 (MDB) 모든 구성 요소가 전선의 동일한 세트에 연결된 컴퓨터 버스입니다. 중재 과정은 언제든지 정보를 보낸 사람이 되는 권리 , 마스터 장치가 되는 것을 의미합니다. 이때 다른 장치들은 수신되는 데이터를 수신 해야 합니다.

 

2. 통신 속도가 빠르다.

   보통 115.2KBps 에 머무는 RS232에 비해 수 MBPS 까지 속도를 올릴수 있습니다.

 

3. 통신 가능한 거리가 길다.

   통신 가능한 거리는 주로 속도에 의존하는데 100 kbps 정도의 속도에서 1200m 까지 통신이 가능합니다.

   조금 더 속도를 줄인다면 더 먼거리도 통신이 가능합니다.

 

4. A / B(또는 U+ / U-) 포트 두가닥의 전선만으로 통신이 가능하다.

 

하지만 단점도 존재하는데 Multi-drop 이라는 동작 환경상 송/수신을 동시에 할 수 없고 보통은 하나의 Master와 여러개의


 병렬로 연결된 Slave 중 특정 Slave 를 호출하면 해당 Slave가 응답을 하는 형태로 통신망을 구성해야 합니다.

 

 

ISO 11898 이란??  :: http://www.iso.org/                                      From Wikipedia, the free encyclopedia

ISO 11898 specifies a serial communication technology called Controller Area Network that supports distributed real-time control and multiplexing for use within road vehicles.  [edit]Structure of the ISO 11898 standard

 

ISO 11898-1:2003 specifies the data link layer (DLL) and physical signalling of the controller area network (CAN). This document describes the general architecture of CAN in terms of hierarchical layers according to the ISO reference model for open systems interconnection (OSI) established in ISO/IEC 7498-1 and provides the characteristics for setting up an interchange of digital information between modules implementing the CAN DLL with detailed specification of the logical link control (LLC) sublayer and medium access control (MAC) sublayer.

ISO 11898-2:2003 specifies the high-speed (transmission rates of up to 1 Mbit/s) medium access unit (MAU), and some medium dependent interface (MDI) features (according to ISO 8802-3), which comprise the physical layer of the controller area network.

ISO 11898-3:2006 specifies low-speed, fault-tolerant, medium-dependent interface for setting up an interchange of digital information between electronic control units of road vehicles equipped with the CAN at transmission rates above 40 kBit/s up to 125 kBit/s.

ISO 11898-4:2004 specifies time-triggered communication in the CAN. It is applicable to setting up a time-triggered interchange of digital information between electronic control units (ECU) of road vehicles equipped with CAN, and specifies the frame synchronisation entity that coordinates the operation of both logical link and media access controls in accordance with ISO 11898-1, to provide the time-triggered communication schedule.

ISO 11898-5:2007 specifies the CAN physical layer for transmission rates up to 1Mbit/s for use within road vehicles. It describes the medium access unit functions as well as some medium dependent interface features according to ISO 8802-2. This represents an extension of ISO 11898-2, dealing with new functionality for systems requiring low-power consumption features while there is no active bus communication.

 

 

'Nobody tells you about.. > CAN Bus' 카테고리의 다른 글

CAN통신의 기초-5  (0) 2013.04.25
CAN통신의 기초-4  (1) 2013.04.24
CAN통신의 기초-3  (0) 2013.04.23
CAN통신의 기초-1  (2) 2013.04.16

This study is the report based on TI corporation " Introduction to the Controller Area Network (CAN) "


Introduction to the Controller Area Network (CAN).pdf




ABSTRACT

A controller area network (CAN) is ideally suited to the many high-level industrial protocols embracing CAN and ISO-11898:2003 as their physical layer. Its cost, performance, and upgradeability provide for tremendous flexibility in system design.

This application report presents an introduction to the CAN fundamentals, operating principles, and the implementation of a basic CAN bus with TI's CAN transceivers and DSPs. The electrical layer requirements of a CAN bus are discussed along with the importance of the different features of a TI CAN transceiver.



CAN bus (for controller area network) is a vehicle bus standard designed to allow microcontrollers and devices to communicate with each other within a vehicle without a host computer.

CAN bus is a message-based protocol, designed specifically for automotive applications but now also used in other areas such as aerospace, industrial automation and medical equipment. - Wiki


1 Introduction

 

The CAN bus was developed by BOSCH(1) as a multi-master, message broadcast system that specifies a maximum signaling rate of 1 megabit per second (bps). Unlike a traditional network such as USB or Ethernet, CAN does not send large blocks of data point-to-point from node A to node B under the supervision of a central bus master. In a CAN network, many short messages like temperature or RPM are broadcast to the entire network, which provides for data consistency in every node of the system. Once CAN basics such as message format, message identifiers, and bit-wise arbitration -- a major benefit of the CAN signaling scheme are explained, a CAN bus implementation is examined, typical waveforms presented, and transceiver features examined.


1986 자동차 내의 서로 다른 개의 전자장치 (ECU-Electronic Control Unit) 간의 통신을 위한 통신 장치 개발을 자동차 업체인 벤츠의 요구에 의하여 자동차 부품 업체인 독일의 보쉬에 의해 최초로 개발되었다.

초기에는 UART 방식을 고려하였으나 일대일 (Point To Point) 통신 방식이기에 서로 다른 개의 ECU 간의 통신 방식으로는 적합하지 않아 다중통신 (Multi Master Communication) 방식이 필요하게 되어 CAN 탄생. 그후 최초의 집적화된 CAN 부품은 1987 인텔에 의해 생산되어졌다.

 




2 The CAN Standard


CAN is an International Standardization Organization (ISO) defined serial communications bus originally developed for the automotive industry to replace the complex wiring harness with a two-wire bus. The specification calls for high immunity to electrical interference and the ability to self-diagnose and repair data errors. These features have led to CAN’s popularity in a variety of industries including building automation, medical, and manufacturing.

The CAN communications protocol, ISO-11898: 2003, describes how information is passed between devices on a network and conforms to the Open Systems Interconnection (OSI) model that is defined in terms of layers. Actual communication between devices connected by the physical medium is defined by the physical layer of the model. The ISO 11898 architecture defines the lowest two layers of the seven layer OSI/ISO model as the data-link layer and physical layer in Figure 1.



CAN Version 변천

- ver 1.0 : 1985 - ver 1.1 : 1987 - ver 1.2 : 1990 - ver 2.0 A&B : 1991

ver1.0, 1.1, 1.2 안정화 보편적인 전자 부품의 사용을 가능케 하기 위해 변한 것이며 ver2.0부터는 A B 구분되어져 A 기존과 동일하지만, B 확장 ID 추가함으로 보다 많은 종류 (최대2036->500만개) 데이터를 사용할 있게 하였다

 

CAN이용 반도체 제조사들

- Cygnal : 8051 계열의 Controller

- Fujitsu : Microcontroller

- Hynix : ARM720T Core Processor

- Infineon : Stand-alone controller, Microcontrollers, Transceiver

- Intel : Stand-alone controller, Microcontrollers

- Philips : Stand-alone controller, Microcontrollers, Transceiver

- 기타 취급하는 반도체 회사:

Atmel, Bosch, CiA, Dallas, Hitachi, Inicore, Microchips, Mishibishi, Motorola, NEC, NI, STM, TI 등이 있음

 

 

CAN 장점 특징

 

- CAN 프로토콜은 Multi Master 통신을 한다. 통신버스를 공유하고 있는 CAN컨트롤러들은 모두가 Master역할을 하여 언제든지

버스를 사용하고 싶을 사용할 있다.

- 노이즈에 매우 강하다. 레벨은 다르지만 RS485 비슷하게 twist pair 2선을 사용하여 전기적 Differential 통신을 하여 전기적

노이즈에 매우 강하다

- 표준 프로토콜이므로 시장성이 뛰어나다. 이로 인해 많은 업체들이 경쟁적으로 CAN칩을 제작하고 있으며, 비용 또한 비교

저렴하다. CAN 프로토콜은 호스트 CPU 내장된 CAN 컨트롤러 칩이나, 호스트 CPU 장착된 CAN 주변장치에서 실행

된다.

- 통신속도가 빠르다. -최대 1 Mbps까지 사용할 있다.

- 거리를 통신할 있다. -최대 1000 m 까지도 40 kbps 통신할 있다. 하드웨어적인 오류보정이 있다.

- 하드웨어적으로 설정된 ID만을 골라 수신 받을 있다. CAN에는 수신필터가 있어 필터를 어떻게 설정하느냐에 따라 정해

ID, 특정 그룹 또는 전체 수신을 있다.

- 실시간 메시지 통신을 있다. 한번에 8개의 데이터를 전송하는 HW 패킷을 제공한다. 보통 RS232/RS485

통신에서는 패킷 통신을 위해 사용자가 일일이 패킷 형식을 만들어 주고 수신 받을 때도 그런 해석이 필요하지만 CAN 8바이트 데이터를 담는 HW 패킷 통신을 기본으로 한다. 따라서 사용자는 데이터 버퍼에 데이터를 쓰고 전송만 하면 모든 처리는 HW 알아서 한다. 분산제어 분야 적용이 용이하다.

- 우선순위가 있다.

-사용되는 전선의 양을 획기적으로 줄일 있다.

- PLUG & PLAY 제공한다.

 

[본문중]  CAN ISO 정의한 complex wiring 간단한 a two-wire bus 타입으로 바꾸었다.

CAN 통신은 ISO 11898 통신방식을 채택하고 있다. , The CAN communications protocol, ISO-11898: 2003 네트워크상의 디바이스들 간에 정보가 어떻게 교류될 수 있는지를 설명하고, 계층으로 나눠져 설명하는 OSI모델을 따른다.

Actual communication between devices connected by the physical medium is defined by the physical layer of the model.

The ISO 11898 architecture defines the lowest two layers of the seven layer OSI/ISO model as the data-link layer and physical layer in Figure 1.

ISO-11898 Figure1처럼 데이터 링크와 물리계층 낮은 계층으로 정의됩니다.





In Figure 1, the application layer establishes the communication link to an upper-level application specific protocol such as the endor-independent CANopen™ protocol. This protocol is supported by the international users and manufacturers group, CAN in Automation (CiA). Additional CAN information is located at the CiA Web site, can-cia.de. Many protocols are dedicated to particular applications like industrial automation, diesel engines, or aviation. Other examples of industry-standard, CAN-based protocols are KVASER's CAN Kingdom and Rockwell Automation's DeviceNet™.

 

그림 1에서 애플리케이션 계층은 데이터 링크 레이어 위에 있습니다. 어플리케이션 계층에서 사용되는 예는 CAN open™ protocol 등이 있습니다. CAN 대한 자세한 내용은 cia사이트나 아래를 참조해주세요.

 

CANopen is a communication protocol and device profile specification for embedded systems used in automation. In terms of the OSI model, CANopen implements the layers above and including the network layer. The CANopen standard consists of an addressing scheme, several small communication protocols and an application layer defined by a device profile. The communication protocols have support for network management, device monitoring and communication between nodes, including a simple transport layer for message segmentation/desegmentation. The lower level protocol implementing the data link and physical layers is usually Controller Area Network (CAN), although devices using some other means of communication (such as Ethernet Powerlink, EtherCAT) can also implement the CANopen device profile.  -wiki



'Nobody tells you about.. > CAN Bus' 카테고리의 다른 글

CAN통신의 기초-5  (0) 2013.04.25
CAN통신의 기초-4  (1) 2013.04.24
CAN통신의 기초-3  (0) 2013.04.23
CAN통신의 기초-2  (0) 2013.04.18

+ Recent posts