UHF RFID Reader개발 이야기, 그 첫번째
에, KLDP 리뉴얼 초기에 얼렁뚱땅 적었던 허접 블로그덕분에 갖게 된 blog entry를,
추가 작성이 없을 시 권한 회수하시겠다는 순선님의 협박(?^^;)이 무서워 긴장하던 차,
워낙에 이런데 적어올릴 컨텐츠 자체가 전무한 바람에,
에라 이런 허접 나부랭이라도 적고 면피하잔 심산으로 함 올려봅니다.^O^//
아울러 올리는 글은 제 개인 블로그에도 같이 올릴 계획입니다. 그냥 숨겨놓고 혼자보는...=3=33
저희 팀에서 작년 초까지 대략 5개월간 진행했었던 UHF RFID Reader의 개발과 관련한
이야기를 설렁설렁 해볼까 합니다.
어떻게 회사 업무 이야기를 올릴 생각을 하냐?고 하시는 분은 걱정 안하셔도 되는게,
어차피 drop된 과제고, 무엇보다 해당 내용을 아는 사람이 저 혼자기 때문에 누가 신경쓰는
사람도 없다. 가 답변되겠습니다.ㅋㅋ
혹여나 이 글로 인해 제 정체를 간파하는 분이 계시더라도 언급은 말아주시와용~^^;
개발인원은 RF 3인에 digital/software 1인이었고, 개발기간은 총 5개월이었으며,
예산은 무려! 400만원이었습니다!ㅡ.ㅡ;
네, 그냥 싼맛에 해본 과제로, PCB 두번 뜨니깐 없더군요. 흐흐
눈치까셨겠지만, dig/sw 1인이 바로 접니다. 심플하죵?^^;
자 그럼 일단 들어가 보겠습니다.
특징.
UHF RFID Reader와 Tag와의 통신이 핵심인데, 여기에는 몇가지 주목할 만한 특징들이 있습니다.
첫째는 backscatter방식입니다.
이건 간단히 말해서 Reader가 쏘는 전파를 Tag가 받아서, 그로부터 자신을 기동할 전력을 생성하고,
아울러 Tag의 응답신호는 반사되 나가는 전파에 되실어보낸다는 뜻입니다.
덕분에 Tag의 응답신호는 매우 미약하며, 레이더이론에서 흔히 말하는 Rcs값이 중요한 factor가 된다는 뜻입니다.
둘째는 통신 메카니즘입니다.
앞서 저는 "통신"이라는 용어를 사용했습니다.
즉 Reader하나와 불특정갯수의 Tag들간의 통신이라는 뜻인데, 이 통신은 아주 재밌는 전제가 따릅니다.
Reader는 주변에 Tag가 몇개 존재하는지 모르고, Tag들역시 자기 주변에 얼마나 많은 Tag가 있는지 알지 못합니다.
때문에 유일한 통신 media인 RF Channel에 있어, Reader to Tag방향은 Reader가 단독으로 점유하지만,
Tag들은 마치 자기가 혼자 쓰는 것인양 사용을 해버리게 됩니다.
다시 말해 Tag들의 응답신호는 여러 Tag들의 동시다발적 송신으로 인해 충돌이 날 수밖에 없지요.
그래서 ISO니 EPC니 하는 standard에서 "anti-collision"이라는 용어를 사용하는 것이고, 이는 충돌 방지보다는
충돌 회피라는 의미로 받아들여야 할 것입니다.
standard들은 통상 Air-Interface Protocol이라고 하여, RF를 사용한 Air-Interface상에서 이루어지는 통신규약에 대해
규정하고 있습니다. 이는, modulation/demodulation, encoding/decoding방식, Reader-Tag통신의 packet구조,
command/response set에 대해 자세히(?^^) 기술하는 것을 목표로 합니다.
또한 standard진영마다 다른 anti-collision방식, 예를들면 binary-tree나 slotted방식의 원리와 사용법에 대해서도
적혀 있습니다.
해당 내용이 궁금하시면 관련 자료를 찾아보세용~
저는 사실 mod/demod, encoding/decoding, packet format에만 관심이 있었고,
command/response set에 대해서는 처음에 훑어보고 그 뒤론 쳐다도 안봤습니당.
anti-collision방식의 구현방법에 대한 얘기는 command/response set에 나와 있지만,
이건 그냥 standard를 옮겨적고 적당히 code 우겨넣으면 되는 거라고 생각했거든요.
제가 생각한 Reader의 핵심기술은 따로 있었습니다. 그리고 그것이 가장 큰 특징이 되겠습니다.
그건 바로 "Transaction Engine"과 "collision-recovery" 기술입니다.
이 용어들은 사실 어디서 공식적으로 사용되는 용어도 아니고, 그냥 제 편의적으로 갖다 붙인 용어들입니다.
앞서 저는 레이더 시스템을 언급했습니다.
그건, tag의 응답신호가 매우 미약한 역산란신호라서 이를 어느정도의 수신감도까지 맞추어 복원해낼 수 있는가가 중요하기
때문에 언급한 것입니다.
이는 다시 말해 충돌로 박살나고 noise에 묻혀버린 tag의 응답 data를 잘 복원해내는 digital front-end가 매우 중요하다는
뜻이 됩니다. 그리고 저는 이것을 "Transaction부"라고 명명했고, 이부분을 담당하는 part를 "Transaction Engine"이라고
부른 것입니다.
다른 하나는 "Collision Recovery"라는 것인데, 이는 사실 어떤 실체를 갖는 것은 아니었습니다.
목표는 standard내에 명시된 anti-collision이라는 기법이 Reader의 성능을 향상시키는데는 한계가 있을 것으로 보고,
충돌로 망가진 수신 data는 무조건 버려버리는 종래의 방식이 낭비적이라는 생각에서 출발하여,
충돌난 신호로부터 충돌나지 않은 아주아주 소중한 정보를 최대한 확보하는 것이었습니다.
흐, 오늘은 여기까지. 저도 일해야 안짤리고 먹고살겠죵?^^;
이상 KLDP랑 하등 상관없을것 같고, 또 아무짝에도 쓸모 없는 얘기를 단지 blog entry를 채우겠단 야욕에 휩싸여
주절거려봤습니다.ㅋㅋ
다음 회에선 Transaction Engine을 위해 생각한 다섯가지 방식에 대해 썰을 풀어볼까 합니다.
끝까지 읽어주셔서 ㄳ.^O^//
아 이딴 쓰레기를 엇다 두라고 서버낭비냐는 불호령이 무서워 냅튀!=3=33
댓글
재미있게 잘
재미있게 잘 읽었습니다. Reader가 쏘는 전파를 Tag가 받아서, 그로부터 자신을 기동할 전력을 생성한다고 하셨는데 어떻게 그게 가능한지 혹시 간단하게 설명해 주실 수 있나요? RFID와 관련해서 항상 궁금해하던 부분이었거든요. ^^;
자기장과 전류는 일종의 교환 관계인 것으로 알고 있습니다
지금 개발중인 EMP 폭탄이 강력한 자기장으로 모든 전자 제품의 회로를 과부하 상태로 몰아가서 끝장낸다는 이야기를 들었습니다.
정확하게 어떻게 동작하는 지는 잘 모르겠지만, RFID 장치도 자기장의 변화를 이용한 기술이 아닌지 궁금해집니다...
히, 재미있으셨다니
히, 재미있으셨다니 다행입니다.만 흑, 이런게 재밌을 리가 없잖아!란 생각의 뒤를 이어, 썰렁한 개그를 무마해주시려는 순선님의 배려에 눈물이 그만...ㅠ.ㅠ;
음, 저도 그쪽 기술에 대해 자세히 아는게 아니고 변죽만 울리다보니 엄한 얘기로 사실을 호도하게 될까 심히 두렵습니다만,
저주파대역(135k, 13.56M등)의 경우엔 moonend님이 언급하신 자기장을 사용합니다.
흔히 자기 유도 방식이라는 건데, 쉽게 생각하면, 변압기입니다. 코일 두개를 감아놓고 한쪽에 전류를 흘리면, 반대쪽에 유도기전력으로 전기가 발생하게 됩니다.
원리상으로는 동일합니다. 다만, 중간에 페라이트 등의 권심 역할을 하는 core가 없다 뿐이지요.
고주파대역에선 조금 틀립니다. UHF정도 대역에서는 유도기전력을 사용하기에는 파장이 짧아져 무리가 있습니다.
대신 RF신호 자체를 정류해서 씁니다. UHF Tag에 사용하는 안테나를 흔히 렉테나라고 하는데, rectifier+antenna의 합성어죠.
즉 안테나 자체가 다이오드처럼 정류 기능을 가져서 RF신호를 그대로 정류해서 dc를 생성해 tag chip에 공급하는 것입니다.
때문에, reader는 저주파대가 되었든 고주파대가 되었든 살아있는 tag와 통신을 하기 위해, reading동작을 하는 한session 동안은 항상 전파를 쏘고 있어야 합니다.
만일 전력전달용 전파가 적절히 전달되지 않으면? 당근 tag는 power off되버리고, reader와의 통신을 통해 동작하던 내부 mechanism(state machine이랄지...)은
다시 전기가 공급되도 reset된 상태가 되어버리고 맙니다.
무슨 고 쪼맨한 tag에 state machine같은게 있을까 하시겠지만, tag는 inlay라는 antenna pattern부와 tag chip으로 구성되고, tag chip은 또 통신을 담당하는 마이컴부와
메모리의 두가지로 구성되어 있다고 보시면 되겠습니당.^O^//
아, 걍 썰렁개그로 적은 글이었는데, 조금만 더 수다떨다보면 다 뽀록나게 될것만 같아 무섭~^^=3=33
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
음... 저도 전자기학
음... 저도 전자기학 배웠었는데 어느새 다 까먹었네요. -_-
마지막으로 한가지만 더 여쭤볼께요... RFID에 사용하는 주파수 대역이 인체에는 무해한 것인가요? 워낙에 전자파 어쩌고 하는 얘기가 많아서... 건강과는 어떤 관련이 있는지 궁금합니다.
음, 전파의 인체
음, 전파의 인체 유해성이란 단어를 들으면, 예전에 자동차 전방센서용 FMCW 레이다 만들때 들었던 얘기밖에는 생각이 안납니당.
이게 사실인건지, 야사인지, 픽션인지도 확실치 않은, 그닥 신빙성은 없는 그럴듯한 얘기인데요...
5~60년대던가 혹은 그이전엔가 미국에서 전파를 이용한 무기를 만들 계획을 추진한 적이 있었답니다.
물체를 멀리 두고, 전파를 쏴서 그 물체를 파괴할수 있는 고주파 장치를 실험중이었는데,
실험대상체가 무슨 지적 측정할때 쓰는 폴대처럼 생긴, 하여튼 그런 모양새라서 사병 하나가 그걸 옆에서 잡고 있었답니다.
그런데, 실험하던중 그 사병이 사망했고, 부검결과 내장이 익어서(으 무섭~) 죽었더랍니다.
그래서 대체 이게 무슨 이유인거냐 따지고 들어가다보니, 2.5G대의 전파가 물, 즉 H2O의 고유진동수에 딱 맞아서 그랬더라는 걸로 판명났고,
그 결과물이 상업화의 길을 걸어 결국 우리가 일상에서 쓰는 전자레인지가 되었다고 하더군요.
실제로 전자레인지는 고주파를 이용해서 물분자를 진동시켜 가열하는 구조로서, 그 전파는 인체에 당근 무지 안좋습니다.(인체의 70%가 물이라니..)
그래서, 레인지 내부 차폐가 가장 중요하다고 하더군요.
하지만, 어쩌다 우연히 돌고 있는 전자레인지 문틈에 잠시 손을 올려놨었는데, 그 새 그 닿는 부위가 익었던 적이 있습니다. 무섭~*^^*;;
아뭏든 제가 아는 전파의 유해성은 대충 이정도이고, 생체 흡수율같은걸로 유해성을 따진다는 얘긴 들었지만,
그냥 다들 생각없이 엄청난 전파공해속에서 살고들 있습니다. 우리들은.
UHF RFID는 한국 MIC규격이 908.5~914MHz로 대충 우리가 일상적으로 쓰는 S*T Cell Phone 주파수대역 근방에 있습니다.
무선장치는 대개 인접 Band에 영향을 주지 않는 정도 선(그리고 대~충 인체에 무리 없지 않을까 하는 막연한 지지선)에서
송신세기에 제한을 둬서 쓰게 됩니다.
UHF RFID의 최대 송신전력 세기는 Antenna출력기준 max EIRP 4Watt로서 36dBm을 넘지 못하게 하고 있습니다.
이정도면, 도심권에 잔뜩 설치되어있는 Cell Phone중계기와 비교했을때 애들 장난 수준이라고 할 수 있죠.
전파 유해성은 결국 일종의 딜레마와 같아서 안쓰자니 불편하고 쓰자니 무섭고 한데, 아직 명확한 인과관계함수가 나오지 않은 상태니,
우리 자손이나 그 다음 세대쯤 되면 우리를 표본시료 삼아 모종의 대책 혹은 대안이 나오지 않을까 싶습니당.
python에서의 텔레파시 기능이랄지.^^;
그럼 좋은 하루하루 되세용~^O^//
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
저도 전자기학
저도 전자기학 배웠는데 교수님이 이 분야에서 꽤 실력이 있으신분 같았습니다.
최소한 아시아 쪽에서는요.
이런분이 어떻게 우리학교에 오셨는지 이해가 가진 않았지만..
아무튼 지금은 어떤지 모르지만 제가 그분께 배우던 시절에는 전자기파가 인체에 미치는 영향(뭐 일반적인 가전제품수준의 것들에서 나오는 정도를 말합니다.)은 아직 입증되지는 않은 상태라고 했습니다. 하나의 주장에 불과했다는..
실제로 오랜 시간의 컴퓨팅이 인체에 미치는 영향은 소음+디스플레이를 통한 눈의 피로+열 이런것들이 더 심해 보이니까요.
물론 제가 잘 모르는 분야에서는 자기장이 생명체에 미치는 영향이 실로 엄청나다고는 하지만 그런건 지구 전체 규모의 얘기라서요. ^^
-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.
반갑습니다.
저도 collision recovery에 관심이 있는데, ed.bsd님은 어떤 방법으로 접근했는지 궁금하네요.^^
헉, 전문가분께서
헉, 전문가분께서 나타나셨으니 전 바로 찌그러져야 할듯합니당^^=3=33
복원쪽에 안은 만들었었지만, 실제로 적용해보진 못했습니다.
해보기도 전에 drop되버려놔서^^;
일케 핑계대고 냅튀^^;=3=33
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
전문가 아닙니다.
전공은 영상압축/코딩 뭐 이런거 입니다. (엄밀히 말하면 제가 있는 연구실이 저런거 하고 저는 좀 이상한거 합니다.)
이 분야에서 그림의 노이즈를 제거하고, 영상에서 중요한 부분이 무언인가하는 일이, 결국은 2개 이상의 서로 다른 신호가 섞인 경우 그것을 분리해 내는 일이라고 볼 수 있습니다. 이 얘기를 RFID에 적용하면, 태그의 충돌도 상이한 여러개의 신호가 섞이는 것으로 볼 수 있기에 이러한 관점에서 논문을 하나 썼는데, 반응이 별로 좋지않습니다. TT
제 수준은 그냥 충돌방지에 관한 논문 몇 개 읽은것 밖에 없습니다. 백스캐터, 인덕티브 커플링 뭐 그런 얘기하면 그냥 그런가보구나 합니다. ed.bsd님께서는 RFID system에 대한 전체적인 안목이 있으신듯 보입니다. 사실 전문가의 도움을 받고 싶은데, 주변에 RFID 하는 사람이 없어서 그냥 그러고 있습니다.
헉 말씀을 듣고 보니
헉 말씀을 듣고 보니 더더욱 제가 더 입을 다물어야 할것만 같습니다.
절대 저는 전문가도 아니고, 전체 안목도 없습니다.
blog본문 모두에서 적었듯, 걍 어떻게 면피용 썰렁개그를 하려다보니, 소재가 마침 이게 생각나 적은거랄까요.^^;
그러니, 절대 진지 모드로 접근하시면 안됩니당.^O^//
전 제 blog의 농담글에 아무런 법적, 도의적 책임감을 느끼지 않는 단순 잡담가임을 잊으셔서는 안됩니다. 랄랄~
영상신호처리쪽을 전공하고 계시군요.
음, 비슷하게 엮이는 부분이 있고, 좀 다른 부분이 있고 하다고 봅니다. 신호처리란게 결국엔 사칙연산이다보니..엥?^^;
저역시 상이한 여러 신호가 섞였을때 상관도기준으로 분석하고 복구하는 쪽을 생각했었지만, 저도 확신은 없습니다.
다만 quantization이전의 baseband부터의 신호처리 접근이 이루어져야 한다는 건 맞습니다.
분명 seoleda님의 접근도 매우 관심가는 방식이고, 가능하면 발표하신 논문도 일견식할수 있으면 좋겠다 싶긴 합니다만,
저는 일단 그쪽 개발에서 손을 뗀 상태다보니...^^;
아마도, seoleda님이 말씀하신 수준까지는 들어가지 않고, 걍 대충 설렁설렁 수박 겉핥기로 수다떨기가 본 blog의 운명이 되지 않을지 싶습니다.
당근 그럴만한 능력도 없구용^^;
그럼 좋은 하루하루 되세용~^O^//
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
ed.bsd님 과 제 생각에 일치하는 부분이 많군요.
논문은 아직 accepted 된곳이 없어서 공개적으로 올리진 못하고, 연락처를 알려주시면 개인적으로 보내드리겠습니다.
논문의 내용을 요약하자면,
신호가 충돌이 났을때, 그들을 잘 복구하기 위해서 특수한 벡터심벌을 정의하고, 이 심벌들은 다음과 같은 특성을 가집니다.
1) hamming distance (서로 섞이더라도 둘이 잘 분리되도록 하는 임의의 두 심벌간의 거리가 멀어야 합니다.)
2) frameproof (codebook에 속하는 임의의 원소가 충돌 했을 경우, 모든 bit가 다 깨져버리면 곤란합니다.)
이러한 코드를 사용할 경우 기존의 방법보다 더 열악한 환경에서도 잘 동작할 것이라고 예상하지만, 실제로 하드웨어를 가지고 실험하지 않았기에 증거는 없습니다.
하지만, 단점이 기존의 코드 체계와는 호환이 되지 않고, 코드의 효율성(동일한 길이의 bit를 가지고 표현할 수 있는 가지수)이 떨어집니다.
결국, 기존에 RFID를 연구하는 사람들의 입장에서 보면 collision recovery 혹은 resilient 라는 장점보다는 단점이 더 커보이고, 실질적인 실험결과가 없기에 반응이 시큰둥 한 것 같습니다.
p.s. ed.bsd님 글은 재미있습니다. 2편도 기대합니다.
네 말씀듣고 보니
네 말씀듣고 보니 당시 생각했었던 안중에서 seoleda님과 비슷한 식으로 생각했었던 것이 있었습니다.^^;
하지만, 아무래도 논문을 받아본달지 하는건 좀 부담스러워서, 호기심을 꾹 누른 채 정중히 사양하겠습니다. (-.-)(_._)(-.-)=3=33
음, 제가 잘못 이해하고 하는 말일것만 같아 걱정이 됩니다만, encoding 체계 자체를 변경하거나 덧대는건 어렵지 않을지 싶습니다.
사실, RFID는 주인공이 reader가 아니고 tag인지라, tag의 동작방식, 즉 battery-less인 passive tag에서 저전력으로 다수의 tag를 인식할 수 있고,
단가가 매우 싸지기 위한 공정상의 단순화를 위한 지극히 원시적인 modulation,encoding방식을 채용한지라, 그런 와꾸 자체를 바꿀수는 없습니다.
(향후엔 어떨지 모르겠지만요...)
분명 전송에러에 강하고, 압축율도 좋고, 복원기능까지 되는... 그런식의 mod,enc방식이 채용되었다면 좋았겠지만, 아쉽게도 현실은 제조단가쪽을 선택한거겠죠.
이상 엄한데 짚고 헛소리한듯한 느낌이 뇌리를 스쳐지나가는 듯한 기분이 뒤통수를 강타한 듯한 데쟈부에서 헤어나지 못하는 만담가였습니당.^O^//
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
댓글 달기