8. 제동시스템 검증 장치(BSPD)

8. 제동시스템 검증 장치(BSPD)

E-포뮬러 제작기: LV 시스템

목차


개요

BSPD는 모터가 5kW 이상의 전력을 소모하는 동시에 차량이 강한 제동을 하는 상황이 500ms 이상 지속되면 AIR를 개방하여 HV를 차단한다. 차량기술규정 59조에 관련 규정이 있다.

즉 BSPD는,

  1. 모터 전력을 측정
  2. 브레이크 페달 입력을 측정
  3. 조건 1, 2가 500ms 이상 유지될 때 디지털 신호 출력

의 기능을 할 수 있어야 한다.

홀 센서

모터에 전달되는 전력은 BSPD가 직접 측정해야 하므로 홀 센서 외에는 대안이 없다. 이미 BMS가 홀 센서를 사용해 배터리 팩 전류를 측정하기 때문에 홀 센서 자체는 들어본 적이 있을 것이다. 홀 센서는 고리 안으로 전선을 통과시키면 그 전선에 흐르는 전류에 따라 아날로그 전압을 출력한다. 참고로 직류용과 교류용 홀 센서가 따로 있으므로 잘 보고 구매해야 한다.

우리 팀은 디웰전자의 TFC30P2VS05150A 모델을 사용해 왔다. 모터가 5kW 전력을 소비하려면 우리의 HV 전압인 294V에서는 17A가 흘러야 한다. 이 센서는 0~375A의 측정 범위를 지원하고 17A에서 약 0.2V 정도를 출력한다.

그런데 0.2V는 너무 작은 전압이다. 물론 조건이 500ms 이상 유지되어야 하기 때문에 BSPD가 노이즈로 오작동하기는 쉽지 않다. 그럼에도 0.2V는 우리같은 아마추어들에게는 다루기가 꺼려지는 미세한 전압이다.

우리는 배터리팩의 최대 전류가 245A기 때문에 측정 범위가 그 이상인 홀 센서를 선정했다. 그런데 사실 여기에 의문을 가져볼 필요가 있다.

  1. 실제로 배터리팩이 200A가 넘는 전류를 사용하기는 하는가?
  2. 실제 전류가 홀 센서의 측정 범위를 넘어서면 센서가 파손되는가?

데이터 분석 결과 우리 차량이 사용하는 전류는 절대 다수가 80A 미만에서 머물렀으며, 가끔 순간적으로 100A를 조금 넘는 전류가 관측되었다. 그렇다면 굳이 측정 범위가 375A까지나 되는 홀 센서를 사용할 필요가 없다. 측정 범위가 좁아지면 우리가 원하는 전류에서의 전압을 구분하기가 훨씬 쉬워진다.

측정 범위보다 더 큰 전류가 인가되어도 버틸 수 있는 overload 스펙이 있는 센서들이 있다.


위 사진은 ES-K7의 데이터시트이다. 정격 전류의 두 배까지 버티고, 정격 전류를 초과해도 최대 출력 전압에서 더 올라가지 않는 듯하다(검증은 필요하다). 사실이라면 0-100A 모델에서 200A까지 문제가 없을 것이다. 우리 차량에 적용하는데 별 문제가 없다. 0-100A에서 0-5V 출력이라면 우리가 원하는 20A 수준에서 1V의 출력이 나온다. 0.2V보다는 훨씬 낫다.

이 모델은 지금까지 내가 찾아본 센서들 중 모든 요구사항을 만족하는 유일한 선택지이다. 측정 범위가 다양하며 전선 구멍 직경을 고를 수 있고, 판매자한테 연락하면 우리 요구사항에 맞춰서 이것저것 커스터마이징도 가능하다고 답변이 온다. 가격도 4만 원 정도로 위에서 우리가 사용하던 홀센서의 절반 수준이다.

여기까지는 LEM같은 다른 회사의 홀 센서도 요구사항을 만족한다. 그러나 이 센서는 앞선 모든 사항을 만족하면서 뒤에 설명할 센서 단락/개방 감지 대응이 가능한 1-5V 출력 옵션이 존재하는 유일한 센서이다.

브레이크 압력 센서

BSPD는 브레이크를 얼마나 밟았는지도 알아야 한다. 여기에는 35342-2E500라는 현대차 순정 연료 레일 압력 센서를 사용했다.

이러한 순정 제품들은 정보가 별로 없다. 가끔 핀맵이 정비지침서와 실제가 다른 경우가 있으니 직접 실험해 보아야 한다. 데이터시트 핀 번호를 너무 철썩같이 믿다 한참을 헤멘 적이 있었다. 센서가 이상하다 싶으면 가운데 신호 선은 냅두고 전원과 그라운드를 바꿔 보자.

이 RPS 센서는 전원만 연결하면 0.5V를 출력해야 한다. 또한 경험상 입으로 힘껏 불면 출력이 ~0.1V 정도 미세하게 바뀌는 것이 눈에 보인다. 이러한 방법으로 센서가 멀쩡한지 확인할 수 있다.

BSPD

이제 BSPD 자체의 동작에 대해 알아보자.

지금까지 본 회로들에 비해 다소 복잡하지만, 순서대로 살펴보면 어렵지 않다. BSPD는 홀 센서와 브레이크 압력 센서의 출력이 기준치 이상인지 확인하기 위해 LM311 비교기를 각각 하나씩 사용한다. 그 중 하나만 남겨보자.

앞서 3. TSAL과 VI에서 설명한 LM311의 동작과 전혀 다르지 않다. 2번 핀에 센서의 출력 전압을, 3번 핀에 기준치가 되는 전압을 전류제한 저항을 거쳐 입력한다.

이 때, 기준 전압은 추후 조정이 필요할 수 있다. 회로를 설계하는 시점에서 고정해 버리면 유연성이 떨어진다. 전압 분배 회로에 가변 저항을 사용하여 언제든지 기준 전압을 바꿀 수 있도록 하자.

여기서 LV 전압은 일정하지 않고 LV 배터리 사용량에 따라 달라진다는 사실에 유의해야 한다. LV 전압이 바뀌어도 비교기 기준 전압은 항상 일정하게 입력될 수 있도록 AMS1117-5.0 레귤레이터를 달아 항상 5V를 전압 분배할 수 있도록 한다. 가변저항은 10k 짜리를 사용하면 0~2.5V를, 100k짜리를 사용하면 0~4.55V를 만들어 줄 수 있다.

LM311 비교기는 TSAL/VI와 동일하게 3번 핀 전압보다 2번 핀 전압이 높으면 로직 HIGH를, 낮으면 LOW를 출력한다. 이 때 HIGH를 출력하기 위해서는 7번 핀과 트랜지스터 사이에 있는 1k 풀업 저항의 도움을 받아야만 한다. 7번 핀에서 HIGH가 출력되면 2N3904 NPN 트랜지스터는 활성화되어 LV 전압을 전달한다.

이러한 비교기 로직이 홀 센서와 브레이크 압력 센서에 각각 하나씩 공통으로 사용된다. 각 센서의 비교기 출력은 그 뒤에 있는 트랜지스터를 활성화하고, 두 트랜지스터가 모두 켜졌을 때만 아래의 릴레이 코일에 LV가 전달되어 전류가 흐르고 릴레이가 붙는다. 트랜지스터 2개로 구현된 AND 게이트다.

릴레이가 붙으면 LV 전원이 555 타이머에 공급된다. 사실 릴레이를 거치지 않고 트랜지스터 AND 게이트가 바로 타이머를 작동시켜도 이론상 문제가 없어야 한다. 그러나 우리는 릴레이가 별도의 LV 전원을 전달해주지 않으면 타이머가 작동하지 않는 문제를 겪었다. 이 설계의 불완전한 부분이다.

555 타이머는 전원이 0.5초 이상 공급되면 HIGH 출력을 유지한다. 설정된 0.5초가 지나기 전에 홀 센서와 브레이크 압력 센서 중 하나라도 조건을 만족시키지 못하게 되면 릴레이가 꺼져 타이머가 멈춘다. 여기까지가 BSPD의 영역이다. 이 타이머 출력은 차단 회로의 BSPD 래칭 릴레이를 작동시켜 HV를 차단하게 되는데, 이 부분은 이후 차단 회로에서 다루도록 하자.

그러나 BSPD는 이것으로 끝이 아니다.

센서의 개방/단락 감지

위 회로는 그대로 차량에 적용할 수 없다. 차량기술규정 제59조 1항의 3에 BSPD는 센서 입력에 대한 개방/단락 감지 기능이 포함되어야 한다. 라고 명시되어 있다. 여기가 BSPD를 구현하는데 있어 가장 까다로운 부분이다. 센서 커넥터가 뽑히든 전선이 잘리든 서로 합선이 나든 이것을 감지하고 HV가 차단되어야 한다는 뜻이다.

아날로그 전압 센서는 VCC, GND, 신호선(SIG) 이렇게 세 가닥의 전선을 가지고 있다. 여기서 발생할 수 있는 문제를 전부 따져 보자.

문제 상황BSPD에 입력되는 센서 출력 전압
GND 단선FLOATING
VCC 단선0V
SIG 단선FLOATING
GND, VCC 단선FLOATING
GND, SIG 단선FLOATING
VCC, SIG 단선FLOATING
커넥터 개방(전체 단선)FLOATING
GND, SIG 단락0V
VCC, SIG 단락VCC
GND, VCC 단락노답
GND, SIG, VCC 단락노답


GND, VCC가 단락되면 센서에 전원을 공급하는 소스가 버티지 못하고 타버릴 것이기 때문에 결국 BSPD는 0V 또는 FLOATING을 입력받는 노답 상황이 펼쳐진다.

요약해 보자. BSPD로 들어가는 각 센서의 신호선은 문제가 생기면 0V, VCC, FLOATING 중 하나의 상태가 된다.

이러한 상황을 인지하는 가장 쉬운 방법은 센서의 정상 출력 전압에 offset이 존재하는 것이다. 우리 팀의 브레이크 압력 센서 정비지침서를 보자.

0~20MPa의 범위에서 선형적으로 출력 전압이 증가한다. 그러나 이 출력 전압의 범위는 0.5V ~ 4.5V이다. 센서는 무슨 일이 있어도 0.5V 이하 또는 4.5V 이상의 전압을 출력하지 않는다. 즉, 이 센서 출력이 정상 범위 밖으로 벗어나면 무언가 고장이 났다는 뜻이다. 우리가 알아내고 싶은 바로 그 상황이다.

브레이크 압력을 측정하는 RPS 센서는 애초에 차량용이기 때문에 이러한 설계가 잘 되어 있다. 그러나 홀 센서에서는 이렇게 정상 범위가 제한된 모델을 찾아보기가 어렵다. 홀 센서로 유명한 LEM 사에서 만드는 제품들에도 출력 전압이 2.5V ± 2V 로 제한되는 모델들이 있다. 그러나 하나같이 전선 구멍이 작아 HV를 통과시킬 수 없었다.

결국 대안을 찾으러 알리까지 갔고, 발견한 것이 위에서 언급한 ES-K7이다.

엄밀히 말하면 ES-K7-W1-A2-O5-P1이다. 이렇게 옵션을 선택해야 0-100A 정격 전류 범위에 12V 전원을 공급받고 1-5V 전압을 출력하여 단선/개방을 감지할 수 있게 된다.

이 센서를 구매해 사용해 보지는 않았다. 그저 선택할 수 있는 가장 간편한 옵션이 이 제품이라는 것을 열심히 뒤져서 찾아냈을 뿐이다. 차량에 적용하기에 큰 문제가 없을 것으로 보이지만 유념해 두기 바란다.

센서 개방 상황 대응

이제 정상 출력 범위 위아래로 offset이 있는 센서를 사용해 센서의 오류를 표현할 수 있게 되었다. 또한 자연스럽게 단락 상황에 대응할 수 있게 되었다. 하지만 아직 개방 상황, 즉 신호선의 FLOATING 상태에 대응할 수는 없다. 이 부분이 제일 까다로운 부분이다.

우리가 사용하는 LM311이나 LM393같은 비교기는 입력단이 floating이어서는 안 된다. floating 상태는 undefined behavior가 되어 칩이 어떻게 작동할 지 장담할 수 없다. 그러나 우리는 신호선이 잘리는 상황에 대응해야 하므로 회로상에서 조치를 취해야 한다. 할 수 있는 조치는 크게 세 가지가 있다.

  1. 센서 출력에 풀다운 저항을 건다.

    우리의 센서들은 아날로그 전압을 출력한다. 아날로그 회로에 풀다운을 거는 것은 그렇게 좋은 생각은 아니다. 하지만 다른 방법을 적용하기 곤란하다면 적당한 풀다운 저항을 신호 라인에 걸 수 있다. 신호 선이 잘리면 입력 핀에는 0V가 걸리게 된다.

    풀다운 저항이 너무 작으면 센서의 출력이 간섭을 받는다. 너무 크면 풀다운이 걸리지 않는다. 5kΩ ~ 100kΩ 정도의 저항이 적절할 것으로 생각된다. 실험적으로 센서 출력이 너무 흔들리지 않으면서 단선일 때 풀다운이 걸리는 저항값을 찾아야 한다.

  2. 센서 출력을 전압 분배한다.

    가장 확실한 해결 방법이다. 센서 출력을 전압 분배하여 비교기에 입력으로 집어넣는 것이다. 대신 전압 분배 회로에서 전원(센서 출력)측의 저항은 센서 쪽에, 그라운드쪽의 저항은 BSPD 회로에 집어넣어 준다. 이 두 저항 사이에는 센서와 BSPD를 연결하는 차량 외부 배선이 있다. 전압 분배 회로의 저항 두 개가 꼭 붙어 있어야 한다는 편견을 버리자.

    이렇게 하면 평소에는 홀 센서 출력이 전압 분배되어 비교기로 입력된다. 이 방법의 유일한 단점으로, 원래도 별로 높지 않은 센서 출력 전압이 더 작아지게 된다. 물론 그림에서처럼 꼭 1:1일 필요는 없고, 1:9 정도로 90%의 전압을 유지하게 할 수도 있다.

    분홍색으로 표시된 차량 외부 배선이 단선되면 회로에는 BSPD쪽에 있는 전압 분배 저항만 남는다. 이제 이 저항은 풀다운 저항과 정확히 똑같이 동작하여 비교기 입력을 0V로 끌어내린다.

  3. CMOS 비교기를 사용한다.

    우리가 사용하는 LM311, LM393 등은 모두 BJT(바이폴라 트랜지스터)를 이용한 비교기이다. 이 비교기들은 입력단에 bias current가 필요하기 때문에 floating 상태가 되면 제대로 작동하지 않는다. 반면 TLV7201과 같은 CMOS 비교기에서는 입력이 floating이면 출력이 0V가 된다고 한다. 나도 잘 모른다. 전자과 관둔지 오래다. 그렇다고 하니 테스트해볼 가치는 있다고 생각한다. 물론 이것도 안정적인 동작은 아니라는 글도 있다.

최종 요구사항

비로소 센서의 개방과 단락을 감지할 수 있는 모든 조건이 갖춰졌다. 이제 실제로 이들을 감지해 HV를 차단하는 회로를 만들어야 한다. 이 시점에서 BSPD의 기능 요구사항은 다음과 같다.

  1. 홀 센서 출력이 정상 범위가 아니라면(0V, VCC, FLOATING) 차단 회로 개방
  2. 브레이크 압력 센서 출력이 정상 범위가 아니라면 차단 회로 개방
  3. 홀 센서와 브레이크 압력 센서 출력이 정상 범위이면서 가변저항으로 설정한 기준치 이상인 상황이 500ms 이상 지속되면 차단 회로 개방

논리회로의 관점에서 접근해 보자.

  • A: 홀 센서 출력이 정상 범위 하한보다 낮음
  • B: 홀 센서 출력이 정상 범위 상한보다 높음
  • C: 홀 센서 출력이 FLOATING 상태임
  • D: 브레이크 압력 센서 출력이 정상 범위 하한보다 낮음
  • E: 브레이크 압력 센서 출력이 정상 범위 상한보다 높음
  • F: 브레이크 압력 센서 출력이 FLOATING 상태임
  • G: BSPD 발동 조건(두 센서 출력이 모두 기준치 이상)이 500ms 이상 지속됨

여기서 floating 처리를 위해 위에서 알아본 방법 중 신호선에 풀다운 저항을 걸면 조건 C는 A에, F는 D에 자연스럽게 합쳐진다.

  • A: 홀 센서 출력이 정상 범위 하한보다 낮음
  • B: 홀 센서 출력이 정상 범위 상한보다 높음
  • C: 브레이크 압력 센서 출력이 정상 범위 하한보다 낮음
  • D: 브레이크 압력 센서 출력이 정상 범위 상한보다 높음
  • E: BSPD 발동 조건(두 센서 출력이 모두 기준치 이상)이 500ms 이상 지속됨

BSPD가 FAULT 신호를 발생시키는 조건식은 (A + B + C + D + E) 이다. A부터 E까지 모든 조건을 OR해서 하나라도 참이면 HV를 비활성화해야 한다.

위에서 BSPD에 트랜지스터 2개로 구현한 AND 게이트를 사용한 바 있다. 그러나 OR 게이트에 입력이 다섯 개나 되면 트랜지스터로 만들기 상당히 번거로워진다. 그냥 로직 IC 하나를 사용하는 것이 더 쉽고 간편하다. 한편, 대부분의 로직 IC는 입력 전압 범위가 5~7V 수준에 머무른다. 우리의 LV로 로직 게이트를 다루기 위해서는 더 높은 전압에서도 동작하는 메탈 게이트 CMOS IC를 사용해야 한다. 대표적으로 Onsemi의 MC14000 시리즈가 있다.

MC14078BCP는 8개의 입력 핀을 가지고 있는 NOR 게이트이다. 최대 18V의 전압에서도 작동한다.

이제 이 모든 것을 반영해 회로를 설계해 보자.

KiCAD 회로도: bspd.kicad_sch

이 회로는 대회가 끝나고 새로 설계한 것이기 때문에 실제로 테스트해보지는 못했다. 위에서는 BSPD의 500ms 지연을 타이머로 구현했지만 여기서는 RC 충전 회로로 구현했다. AND 게이트를 통과하며 생기는 전압 강하 등을 고려해 적절히 개선하여 사용하면 좋을 듯하다.

목차