Is there a set of communication protocols to communicate with BMS?

fWhat data does the flight controller need to receive from the smart battery? There is no such document or information? Thanks in advance

Take a look at the BatMon protocol implementation

Here is the I2C smbus protocol document that is supported.

http://sbs-forum.org/specs/sbdat110.pdf

You may want to look at the smartbatt_info message in mavlink.
https://mavlink.io/en/messages/common.html#SMART_BATTERY_INFO

PR for that here: https://github.com/ArduPilot/ardupilot/pull/16167

There are CAN smart battery types as well defined in battmon. And PRs in regards to CAN smartbatts here,