DIO Driver는 AUTOSAR Classic Platform에서 MCAL의 I/O Drivers 그룹에 드는 모듈이다.[1][2] DIO Driver는 마이크로컨트롤러 칩 안의 DIO(Digital Input/Output) 핀과 port를 읽고 쓰는 서비스를 준다. 핀에 기능과 방향을 정하고 초기화하는 일은 하지 않으며, Port Driver가 설정해 둔 핀을 쓴다.[3]

읽기와 쓰기

DIO Driver는 channel, port, channel group 세 단위로 핀을 읽고 쓴다. channel은 Dio_ReadChannel과 Dio_WriteChannel로, port는 Dio_ReadPort와 Dio_WritePort로, channel group은 Dio_ReadChannelGroup과 Dio_WriteChannelGroup으로 다룬다.[3]

Dio_FlipChannel은 출력 channel에 부르면 레벨을 뒤집어 쓰고 뒤집힌 레벨을 돌려준다. 입력 channel에 부르면 물리 출력에는 손대지 않고 그 channel의 레벨만 돌려준다.[3]

읽기 함수는 입력 channel에도 출력 channel에도 쓸 수 있다. 출력 channel을 읽을 때, 마이크로컨트롤러가 핀 값을 직접 되읽을 수 있으면 실제 핀 레벨이 오고, 그렇지 않으면 출력 레지스터에 든 값이 온다. 입력 channel에 쓰기 함수를 불러도 물리 출력 레벨은 달라지지 않는다.[3]

동기, 비버퍼

DIO Driver의 읽기·쓰기 서비스는 동기식이고 데이터를 버퍼에 두지 않는다.[3] 동기식 함수는 호출자에게 돌아가는 순간 기능이 끝나 있음이 보장되는 함수다.[2] 그래서 DIO 함수가 돌아올 때 핀 읽기나 쓰기는 이미 끝나 있고, 값을 쌓아 두었다가 나중에 반영하는 일이 없다.[3]

STD_HIGH와 STD_LOW

channel의 레벨은 STD_HIGH와 STD_LOW 두 값이다. DIO Driver 규격은 STD_LOW를 물리 상태 0 V로, STD_HIGH를 물리 상태 5 V나 3.3 V로 정한다.[3]

Port Driver와의 관계

DIO 함수는 Port Driver가 초기화된 뒤에만 불러야 하고, 그 전에 부르면 DIO Driver가 어떻게 동작할지 정해져 있지 않다.[3] 초기화 순서는 Port Driver에서 다룬다.

[1]
“Layered Software Architecture (AUTOSAR CP R25-11),” AUTOSAR, 2025. Accessed: Sep. 30, 2026. [Online]. Available: https://www.autosar.org/fileadmin/standards/R25-11/CP/AUTOSAR_CP_EXP_LayeredSoftwareArchitecture.pdf
[2]
“Glossary (AUTOSAR FO R25-11),” AUTOSAR, 2025. Accessed: Sep. 29, 2026. [Online]. Available: https://www.autosar.org/fileadmin/standards/R25-11/FO/AUTOSAR_FO_TR_Glossary.pdf
[3]
“Specification of DIO Driver (AUTOSAR CP R25-11),” AUTOSAR, 2025. Accessed: Sep. 30, 2026. [Online]. Available: https://www.autosar.org/fileadmin/standards/R25-11/CP/AUTOSAR_CP_SWS_DIODriver.pdf