SoftwareSerial resets arduino pro mini

Check the rest of your code for the same issue - I found two more.

void ACK()
{
  byte ack[6];
  ack[0] = 0xAF;
  ack[1] = 0x1F;
  ack[2] = DID_H;
  ack[3] = DID_L;
  ack[4] = 0x22;
  ack[5] = 0xAA;
  byte crc = 0x00;
  for(int i=0;i<=5;i++)
  {
    crc ^= ack[i];
  }
  ack[6] = crc;                        // <=== overflow
  zb.write(ack,sizeof(ack));
}



void NAK()
{
  byte ack[6];
  ack[0] = 0xAF;
  ack[1] = 0x1F;
  ack[2] = DID_H;
  ack[3] = DID_L;
  ack[4] = 0x22;
  ack[5] = 0xFF;
  byte crc = 0x00;
  for(int i=0;i<=5;i++)
  {
    crc ^= ack[i];
  }
  ack[6] = crc;                       // <=== overflow
  zb.write(ack,sizeof(ack));
}