๐ป AUTOSAR ํต์ : Application Direct Routing ์ดํด
๐ก ๊ธฐ๋ณธ ์ฉ์ด ์ ๋ฆฌ
- I-PDU (Interaction Layer PDU): ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋จ์
- N-PDU (Network Layer PDU): ๋คํธ์ํฌ ๊ณ์ธต์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋จ์
- L-PDU (Data Link Layer PDU): ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ ๋จ์
โ
์์ (Receive) ๊ณผ์
์์ ๊ณผ์ ์ CAN ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ ํ, ๋ฐ์ดํฐ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต๊น์ง ์ ๋ฌ๋๋ ํ๋ฆ์ ์ค๋ช
ํฉ๋๋ค.
-
CAN ์ธํฐ๋ฝํธ ๋ฐ์
MCan_LLD_Isr_process_interrupt ํจ์๊ฐ ํธ์ถ๋ฉ๋๋ค. (ISR: Interrupt Service Routine)
- RX FULL CAN์ธ ๊ฒฝ์ฐ,
MCan_LLD_Process_Rx_Buffers ํจ์๊ฐ ์ถ๊ฐ๋ก ํธ์ถ๋ฉ๋๋ค.
-
CanIf_RxIndication ํธ์ถ
- CAN ์ธํฐ๋ฝํธ๋ก ์ธํด
CanIf_RxIndication ํจ์๊ฐ ํธ์ถ๋ฉ๋๋ค.
-
PduR_CanIfRxIndication ํธ์ถ
PduR_CanIfRxIndication ํจ์๊ฐ ํธ์ถ๋ฉ๋๋ค.
- ์ฃผ์ : ์คํ๋ฆฟ ๋ผ์ฐํ
์ด ์กด์ฌํ๋ ๊ฒฝ๋ก์ธ ๊ฒฝ์ฐ, ์ด ํจ์๋ ํธ์ถ๋์ง ์์ต๋๋ค.
-
PduR_LoRxIndication ํธ์ถ
PduR_LoRxIndication ํจ์๊ฐ ํธ์ถ๋ฉ๋๋ค.
-
Com_RxIndication ํธ์ถ
- ์ธํฐ๋ฝํธ ๋ฐ์์ผ๋ก
Com_RxIndication ํจ์๊ฐ ํธ์ถ๋ฉ๋๋ค.
- ์ฃผ์ : ์คํ๋ฆฟ ๋ผ์ฐํ
์ด ์กด์ฌํ๋ ๊ฒฝ๋ก์ธ ๊ฒฝ์ฐ, ์ด ํจ์๋ ํธ์ถ๋์ง ์์ต๋๋ค.
memcpy(dest, src, length)๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํฉ๋๋ค.
dest : COM์ ์ฃผ์
src : PduR_CanIfRxIndication์์ ์์ ๋ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ
โ
์ก์ (Transmit) ๊ณผ์
์ก์ ๊ณผ์ ์ ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต์์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ํด CAN ๋ฒ์ค๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ํ๋ฆ์ ์ค๋ช
ํฉ๋๋ค.
-
PduR_ComTransmit ํธ์ถ
- ์ ์ก ์์ฒญ์ด ์์๋ฉ๋๋ค.
- ? ์ฃผ์: ๋ผ์ฐํ
๋ฉ์์ง ์์ ์ ์ด ํจ์๋ ํธ์ถ๋์ง ์์ต๋๋ค. (Com Sender๋ง ํธ์ถ)
-
CanIf_Transmit ํธ์ถ
- ๋ผ์ฐํ
์ ์ด ํจ์๊ฐ ํธ์ถ๋ฉ๋๋ค. (์คํ๋ฆฟ/์ง๋จ ํฌํจ)
-
CanIf_TxConfirmation ํธ์ถ
- ์ ์ก์ด ์๋ฃ๋ ํ ํธ์ถ๋ฉ๋๋ค.
-
MCan_LLD_Process_Tx ํธ์ถ
- CAN ๋๋ผ์ด๋ฒ ๋ ๋ฒจ์์ ์ ์ก์ ์ฒ๋ฆฌํฉ๋๋ค.
-
MCan_LLD_Isr_process_interrupt ํธ์ถ
- CAN ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํ์ฌ ์ ์ก ์๋ฃ๋ฅผ ํ์ธํฉ๋๋ค.
๐ก ์ฃผ์์ฌํญ: ๋์ฉ๋ I-PDU ์ ์ก
- PDuR_ComTransmit์ ํตํด ๋์ฉ๋ I-PDU ์ ์ก์ด ์์๋ ํ, AUTOSAR COM ๋ชจ๋์ ์ ์ก์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๊ฑฐ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๋๊น์ง ๋ด๋ถ ์ ์ก ๋ฒํผ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
- ๋์ ๊ธธ์ด ์ ํธ๊ฐ ํฌํจ๋ I-PDU์ ๊ฒฝ์ฐ,
PduInfoType์ SduLength๋ ๋ง์ง๋ง ์
๋ฐ์ดํธ๋ ๊ฐ(๋๋ ์ด๊ธฐ๊ฐ)์ ๋ฐ๋ผ ์ค์ ๋์ด์ผ ํฉ๋๋ค.