CXP 통신이 다른 인터페이스보다 좋은 이유 시리즈 마지막 시간 입니다
이번 시간에는 Stream channel 의 Data Integrity 에 대해 자세히 알아 보겠습니다.
Stream Integrity

아래는 CoaXPress standard 1.1 문서에서 발췌한 내용입니다.
• The control protocol (i.e. everything except for data) is designed to be tolerant of single bit errors.
• The data itself is protected by a CRC32 checksum which signals data errors.
• This revision of the protocol does not support data resend.
• Data resend increases the complexity of the protocol, high cost and decrease the real-time performance
정리하면, Stream packet data는 CRC32 checksum으로 부터 보호 받아 1 bit 에러도 허용하지 않습니다. Data resend 방식은 protocol의 복잡성을 증가시키며 real-time 처리에 능하지 않았습니다. 따라서 Data resend 방식을 이용하지 않습니다.
그럼 Stream data는 어떻게 전송 되며, format은 어떻게 이루어 졌는지 한 번 알아보도록 하겠습니다.
Stream Data Packet 전송 방식
Stream data packet은 Stream data(이미지 데이터)를 전송하는 데 사용됩니다.
총 3단계에 걸쳐 Raw line data에서 CXP 채널 당 보내는 packet 단위로 만드는 작업을 합니다.
1. Form into a stream
카메라 이미지에서 가로 줄별로 Line에 번호를 붙여서 Raw line data라고 합니다.
이 데이터에서 이미지 한 장의 맨 앞에 IH(Image Header)를 붙이고 Line 별로LM(Line Marker)를 붙여줍니다.

2. Packetize
위 상태에서 Stream data packet size 만큼 잘라서 Packet 번호를 붙여줍니다.(Pkt 0,1,…) 그리고 여기서도 앞뒤로 새로운 것을 붙여줍니다. Packet 별로 앞에는 SPH(Stream Packet Header), 뒤에는 SPT(Stream Packet Trailer).
이러면 이제 진정한 하나의 packet이 완성 됩니다.

3. Packet order on connections
위에서 완성된 packet은 CXP 통신 채널 별로 하나씩 순차적으로 전송됩니다.

Stream Data Packet Format
그럼 이제 Packet의 SPH, SPT, Stream data 안에 어떻게 구성되어 있는 지 자세히 알아보도록 하겠습니다.


1. SPH
Packet의 시작을 알리는 K코드와 한 Stream내에서의 Packet 번호를 나타내는 Packet Tag 등의 정보가 담겨 있습니다.
여기서 중요한 정보는 Packet Tag이며, 중간에 누락되는 packet 번호가 존재하면 해당 packet 전송에 에러가 발생했다고 볼 수 있습니다.
Packet Tag 번호가 초기화 되는 경우는 CXP를 재 연결하는 경우에만 발생하며 Acquisition start, stop, 설정 제어 등으로는 초기화 되지 않습니다.
2. Stream Data
아래에서 자세히 다루도록 하겠습니다.
3. SPT
CRC checksum과 Packet의 끝을 알리는 K코드가 담겨 있습니다.
Stream channel data latency
stream latency
Stream data
위에서 보셨다시피 Stream data에는 Image Header, Line Marker 그리고 이미지 데이터가 존재합니다. 여기서는 아래 분홍색의 사각형이 이미지 데이터겠네요.

1. Image Header
여기서는 몇 번째 이미지인지를 구별해는 Source Tag가 존재합니다.
그리고 카메라 센서에서 고객이 선택한 영역이 어디인 지를 알려주는 X/Y size, X/Y offset 정보가 담겨있고 Pixel format 등 이미지에 대한 정보도 있습니다.
2. Line Marker
Line Marker는 위에서 언급했듯이 이미지의 가로 줄별로 하나씩 할당하기에 가로 한 줄에 대한 데이터가 끝났다는 정보를 담고 있습니다.
3. Image data
그리고 이제 고객이 촬영하고자 했던 이미지 데이터가 실려 있습니다.
Stream Integrity
이것으로 CXP의 Trigger 부터 Control, Stream channel까지 알아보았습니다.
CoaXPress는 다른 인터페이스와 다르게 빠른 반응 속도의 Trigger를 제공하며 신뢰성 높은 Stream channel을 구성하고 있습니다.
그러므로 고속에서 높은 data 전송 신뢰성을 요구하는 반도체/PCB AOI, Web inspection, 자동화 검사 장비 등에서 사용되고 있습니다.
CoaXPress는 매년 정기 미팅을 통해 지속적인 기술 개발을 하고 있으며 저희 뷰웍스에서도 같이 참여하고 있습니다. 앞으로의 포스팅에서도 다룰 예정이오니 많은 기대 부탁 드립니다!
Comments are closed.